Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按enter键时调用函数onKeyup事件不起作用_Javascript_Html_Enter_Onkeyup - Fatal编程技术网

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();,但是如果我保留一个按钮并为表单提交定义一个函数,那么表单正在提交。为什么呢?