此解决方案已提供给this question,询问在输入字段中按 Enter 时如何触发HTML按钮。
<input type="text" id="txtSearch" onkeypress="searchKeyPress(event);" />
<input type="button" id="btnSearch" Value="Search" onclick="doSomething();" />
<script>
function searchKeyPress(e)
{
// look for window.event in case event isn't passed in
if (typeof e == 'undefined' && window.event) { e = window.event; }
if (e.keyCode == 13)
{
document.getElementById('btnSearch').click();
}
}
</script>
为什么if (typeof e == 'undefined' && window.event) { e = window.event; }
nescecary?它似乎在检查参数是否没有正确传递,为什么不呢?这与修复浏览器兼容性问题有关吗?
答案 0 :(得分:7)
因为旧的IE版本是一个可怕的憎恶,使用全局变量event
而不是任何理智的开发人员会使用的函数参数。
出于同样的原因(oldIE开发人员疯了)你不能在oldIE中使用.addEventListener()
但是必须使用.attachEvent()
。
编辑:刚看到您正在使用内联事件并始终传递该事件。这样,您将在函数的第一个参数中始终拥有一个有效的事件对象。您不需要其他代码。