这是我的代码
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
。但是当按下Enter
键时,我没有收到任何警报,而且直接提交了表单,为什么会这样?我对JS
的了解非常有限。有人可以解释一下吗?
答案 0 :(得分:3)
在submit
事件之前触发keyup
事件:
<form onsubmit="alert('submitted')">
<input onkeyup="alert('keyup')"/>
</form>
1. submitted
2. Page navigates
https://jsfiddle.net/DerekL/pvw1dtb7/
如果您正确阻止了keyup
事件,您会看到预期的submit
事件。像这样:
<form onsubmit="alert('submitted'); event.preventDefault();">
<input onkeyup="alert('keyup')"/>
</form>
1. submitted, event stopped
2. keyup