这是我的代码
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
事件上执行,对于所有其他键,我的代码将给出一个 alert
说 in。但是,当按 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
关于javascript - 按 Enter 键时调用 onKeyup 事件函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46112567/