从哪里来event
?:-)
这是您正在寻找的解决方案:
// First, change the HTML to:
<input id="myinput" type="text" onkeydown="return press( event );" value="X" />
// Then, on the JS part:
function press( e ) {
var evt = e || window.event
// "e" is the standard behavior (FF, Chrome, Safari, Opera),
// while "window.event" (or "event") is IE's behavior
if ( evt.keyCode === 13 ) {
// Do something
// You can disable the form submission this way:
return false
}
}
请注意return
在此函数和 HTML 事件中的使用以防止表单提交(这是在表单字段中按 [Enter] 时的默认行为)。
但是,我建议删除 HTML 中的 javascript 部分,然后直接使用:
document.getElementById('myinput').onkeydown = function( e ) {
// Your code
}
这使您可以拥有不显眼的javascript
对于 jQuery 方式,这将是以下内容:
$('#myinput').on( 'keydown', function( e ) {
// jQuery normalizes the "e" parameter, so you can use:
if ( e.keyCode === 13 ) {
// Do something
}
} )
PS:event
其实和 是一样的window.event
,这才是IE的正确用法。不过,这不是其他浏览器(FF、Chrome ......)使用的标准。这就是为什么我们使用提供的技巧(作为参数传递的var evt = e || window.event
地方e
)。