【问题标题】:How to disable the enter button from triggering the onkeyup event?如何禁用回车按钮触发 onkeyup 事件?
【发布时间】:2013-07-08 13:02:44
【问题描述】:

在我的 asp.net 解决方案中,我有一个文本输入框和一个搜索按钮。文本输入字段上有一个 onkeyup jquery 事件,因此当用户按下某个键时它会自动单击搜索按钮。也可以手动点击按钮。

但我注意到,如果您正在输入,然后按 ENTER 键,它将触发 onkeyup 事件。如果按下 ENTER 键,我如何禁用该功能,或者检测它是否是 ENTER 键然后有一个 if 语句或其他东西。

发生的另一件事是,如果输入框中的文本有问题,我会显示一个警告消息框。然后,如果您按 ENTER 关闭该框,它将以某种方式触发 onkeyup 事件,该事件再次显示警报框...

谢谢。

【问题讨论】:

    标签: javascript jquery asp.net


    【解决方案1】:

    在函数的所有动作前添加if (evt.keyCode != 13) :)

    【讨论】:

    • 这意味着您的功能只有在按下按钮的键码不是 13 时才会起作用(按下的按钮不是“Enter”按钮):)
    • evt 来自哪里?
    • 它不仅可以是 evt,这是你函数中的属性 :)
    • $('#yourTextBox').onkeyup(function (evt) { your function });
    【解决方案2】:

    您可以在事件中使用 .which 来确定按下的键的 KeyCode (ENTER = 13):

    $('#input').keyup(function(event) {
        if(event.which == 13)
        {
             //respond to enter keypress
        }
    
    
    });
    

    您还可以使用this 网站轻松查找有关不同键的键升/降等信息。

    希望这会有所帮助!

    【讨论】:

      【解决方案3】:

      希望这会有所帮助。

      <script type="text/javascript"> 
      
      function stopRKey(evt) { 
        var evt = (evt) ? evt : ((event) ? event : null); 
        var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
        if ((evt.keyCode == 13) && (node.type=="text"))  {return false;} 
      } 
      
      document.onkeypress = stopRKey; 
      
      </script>
      

      【讨论】:

        【解决方案4】:

        onkeyup 事件在您使用 ENTER 关闭警报后触发,因为警报已关闭 onkeydown,因此在关闭并且文档重新获得焦点后,当您释放键时,文本框的 onkeyup事件将被触发。

        如前所述,您可以添加if (event.keyCode != 13) 来测试ENTER 键是否不是按下的键。

        更好的解决方案是使用不同的事件。 使用oninput,而不是onkeyup

        oninput 事件在用户更改文本框的值时触发。

        仅当用户在文本框中写入内容或删除内容时才会触发该事件。当按下 ENTER 键或按下不改变文本框值的任何其他键(如箭头键)时,它不会熄灭。

        oninput 事件可能是您正在搜索的功能的更好选择。

        *如果您使用的是oninput 事件,则不需要前面提到的if

        oninput 事件演示的小提琴:Here

        【讨论】:

          【解决方案5】:

          为了将来参考,我发现了这个有用的网站:

          http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

          祝你好运!

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-11-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多