jQuery选择器排除事件中的其他元素

时间:2017-12-29 22:00:01

标签: javascript jquery event-handling addeventlistener jquery-events

我有一个表单,我想阻止在用户按 Enter 时提交它 但是我想要排除3个输入"规则"。

执行此操作我可以在按下 Enter 时阻止提交事件:

  $(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;
      }
    }
  });

另一个:

trigger()

我的目的是阻止输入除三个输入之外的所有输入,但是当在其中一个输入中按Enter时,我想运行let ID = () => let Source = Json.Document(Web.Contents("www.example.com")), #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error) in #"Converted to Table" in ID

1 个答案:

答案 0 :(得分:1)

测试目标您要排除的元素之一。如果是这样,请立即从处理程序返回。您还需要致电event.stopPropagation(),否则该事件将冒泡到其他不属于排除元素的元素。

$(document).keydown(function(event) {
    if (event.keyCode == 13) {
        if ($(event.target).is("#input1,#input2,#input3")) {
            event.stopPropagation();
            return;
        }
        event.preventDefault();
        return false;
    }
}