按 enter 时调用函数 onKeyup 事件不起作用
Calling a function onKeyup event not working while pressing enter
这是我的代码
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
这是我的代码
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