どこ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
}
}
この関数とHTMLイベントを使用して、フォームが送信されないようにすることに注意してくださいreturn
(これは、フォームのフィールドで[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
引数として渡された場所)を使用する理由です。