我注意到 IE 中有一个相当奇怪的行为。
我有一个带有单个输入文本字段和一个提交按钮的 HTML 表单
在提交单击时,我需要执行一个客户端 JavaScript 函数来执行必要的操作。
现在,当我想阻止文本字段中的回发时(按回车键)。
我添加了一个按键 JavaScript 函数,如下所示:
<input type=text onkeypress="return OnEnterKeyPress(event)" />
function OnEnterKeyPress(event) {
var keyNum = 0;
if (window.event) // IE
{
keyNum = event.keyCode;
}
else if (event.which) // Netscape/Firefox/Opera
{
keyNum = event.which;
}
else return true;
if (keyNum == 13) // Enter Key pressed, then start search, else do nothing.
{
OnButtonClick();
return false;
}
else
return true;
}
奇怪的是,这不起作用。
但是如果我将文本字段传递给函数:
<input type=text onkeypress="return OnEnterKeyPress(this,event);" />
function OnEnterKeyPress(thisForm,event) {
var keyNum = 0;
if (window.event) // IE
{
keyNum = event.keyCode;
}
else if (event.which) // Netscape/Firefox/Opera
{
keyNum = event.which;
}
else return true;
if (keyNum == 13) // Enter Key pressed, then start search, else do nothing.
{
OnButtonClick();
return false;
}
else
return true;
}
我能够防止回发。
谁能确认这里到底发生了什么?
HTML 表单只有一个文本框和一个提交按钮。
提交时执行的 JavaScript 函数的结果输出显示在单独 div 的 HTML 文本区域中。