javascript - 按 Enter 键时调用 onKeyup 事件函数不起作用

标签 javascript html enter onkeyup

这是我的代码

function searchForProductsInPopup(evt) {
     var charCode = (evt.which) ? evt.which : evt.keyCode;
     alert("in");
     if(charCode == 27) {
          closePopup();
     }
     else if(charCode == 13) {
          closePopup();
          return false;
     }
}

HTML 代码

<input type="text" 
       class="input-medium focused" 
       id="invoiceSearchKeyWord"
       onkeydown="return searchForProductsInPopup(event);"/>

此函数将在文本框的 keyup 事件上执行,对于所有其他键,我的代码将给出一个 alertin。但是,当按 Enter 键时,我没有收到任何警报,并且直接提交了表单,这是为什么?我对 JS 的了解非常有限。谁能解释一下吗?

最佳答案

submit 事件在 keyup 事件之前触发:

<form onsubmit="alert('submitted')">
    <input onkeyup="alert('keyup')"/>
</form>

1. submitted
2. Page navigates

https://jsfiddle.net/DerekL/pvw1dtb7/

如果您正确阻止 submit 事件,您将看到预期的 keyup 事件。像这样的事情:

<form onsubmit="alert('submitted'); event.preventDefault();">
    <input onkeyup="alert('keyup')"/>
</form>

1. submitted, event stopped
2. keyup

https://jsfiddle.net/DerekL/dmpxjt27/

关于javascript - 按 Enter 键时调用 onKeyup 事件函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46112567/

相关文章:

单击时的Javascript菜单

javascript - Skrollr.js 插件在 Bootstrap Carousel 内不出现视差 - 提供 Fiddle

html - 具有响应高度和宽度的响应背景图像

iphone - 如何在 Enter 按键时关闭键盘

jQuery 捕获回车键并防止默认

javascript - IE 中的 AJAX 计时

未检测到 Javascript 字符串比较

html - 我可以动态更改 css 中的 img src 吗?

html - 面板有两个部分

java - 按 Enter 键继续奇怪的事情(Java)