Javascript 按enter键时调用函数onKeyup事件不起作用
这是我的密码Javascript 按enter键时调用函数onKeyup事件不起作用,javascript,html,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(); ret
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
事件中执行,因为所有其他键my code将发出警报
在中说。但是当按下Enter
键时,我没有收到任何警报,直接提交表单,这是为什么?我在JS
方面的知识非常有限。有人能解释一下吗?在keyup
事件之前触发submit
事件:
<form onsubmit="alert('submitted')">
<input onkeyup="alert('keyup')"/>
</form>
1. submitted
2. Page navigates
在您的
键控
事件之前触发提交
事件:
<form onsubmit="alert('submitted')">
<input onkeyup="alert('keyup')"/>
</form>
1. submitted
2. Page navigates
因为表单有一个
submit
事件,当您按enter键时,该事件不会被取消-默认事件和操作仍在执行。如果charCode===13
可能会执行event.preventDefault()
来阻止它发送默认提交事件。但是@something警报本身不会出现,那么我如何检查该条件,我认为它永远不会执行该函数。我在firefox中进行了调试,但没有执行,因为表单有一个submit
事件,当您按enter键时,该事件不会被取消-默认事件和操作仍在执行。如果charCode===13
可能会执行event.preventDefault()
来阻止它发送默认提交事件。但是@something警报本身不会出现,那么我如何检查该条件,我认为它永远不会执行该函数。我在firefox中调试过,但没有执行so@Derek朕會功夫 通过添加event.preventDefault();我正在更改表单的性质,以便在按下enter键时表单不会提交,对吗?是的,默认情况下,它会阻止浏览器对该事件执行任何操作。但是@Derek朕會功夫, 我的表单有一个提交类型的控件(提交按钮),其单击事件在添加事件后不起作用。preventDefault();,但是如果我保留一个按钮并为表单提交定义一个函数,那么表单正在提交。为什么?那么@Derek朕會功夫 通过添加event.preventDefault();我正在更改表单的性质,以便在按下enter键时表单不会提交,对吗?是的,默认情况下,它会阻止浏览器对该事件执行任何操作。但是@Derek朕會功夫, 我的表单有一个提交类型的控件(提交按钮),其单击事件在添加事件后不起作用。preventDefault();,但是如果我保留一个按钮并为表单提交定义一个函数,那么表单正在提交。为什么呢?