jQuery选择器排除事件中的其他元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery选择器排除事件中的其他元素相关的知识,希望对你有一定的参考价值。
我有一个表单,我想阻止在用户按Enter键时提交它但是有3个输入我想要排除这个“规则”。
这样做我可以在按下Enter时阻止提交事件:
$(document).keydown(function(event){
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
});
但是如何从这条规则中排除我的三个输入?
这是我尝试过的:
$(document).not("#input1", "#input2", "#input3").keydown(function(event){
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
});
而另一个:
$(document).keydown(function(event){
if(event.keyCode == 13) {
if ($(event.target).is('#input1') == false || $(event.target).is('#input2') == false || $(event.target).is('#input3') == false) {
event.preventDefault();
return false;
}
}
});
我的意图是阻止输入除三个输入之外的所有输入,但是当在其中一个输入中按下Enter时,我喜欢运行trigger()
。
答案
测试目标是否是您要排除的元素之一。如果是这样,请立即从处理程序返回。您还需要调用event.stopPropagation()
,否则该事件将冒泡到其他不是排除元素的元素。
$(document).keydown(function(event) {
if (event.keyCode == 13) {
if ($(event.target).is("#input1,#input2,#input3")) {
event.stopPropagation();
return;
}
event.preventDefault();
return false;
}
}
以上是关于jQuery选择器排除事件中的其他元素的主要内容,如果未能解决你的问题,请参考以下文章
[ jquery 选择器 :not(selector) ] 此方法排除与selector选择器选取的页面元素