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中的$的特殊用法

[ jquery 选择器 :not(selector) ] 此方法排除与selector选择器选取的页面元素

jQuery中的标签选择器是匹配所有元素,如$("a"),匹配所有的a元素,如果要获取给a一个click事件……

jQuery

jQuery如何过滤排除指定的元素

小白入门之前端网页技术JQuery