代码之家  ›  专栏  ›  技术社区  ›  Daniel Williams

在firefox浏览器上防止keycode 13触发器建议

  •  0
  • Daniel Williams  · 技术社区  · 7 年前

    在我的代码中,如果您开始在表单输入中键入ermail,然后使用向下箭头键选择一个自动建议条目,并按enter键,则该函数将触发,即使我没有在实际输入中按enter键。

    function sysOnEnter(event) {
      if (event.keyCode == 13) {
        event.preventDefault();
        console.log('key was enter');
      }
    }
    <input type="text" name="email" onkeypress="sysOnEnter(event)">
    1 回复  |  直到 7 年前
        1
  •  -1
  •   Daniel Williams    7 年前

    经过更多的研究,我设法回答了我自己的问题。

    function sysOnEnter(event, id) {
      
      var key = event.key || event.keyCode;
      
      if (key == 'Enter' || key == 13) {
      
        var val = document.getElementById(id).value;
      
        setTimeout(function() {
          if (document.getElementById(id).value == val)
            console.log('captured ENTER event');
        },0);
        event.preventDefault();
        return false;
      }
    }
    <input type="text" id="email" onkeypress="sysOnEnter(event, this.id)">