キーを押したときに実行するスクリプトを記述します。onkeydown属性は省略可能です。
HTMLでキーダウンのイベントハンドラを指定する。
<tag onkeydown="javascript">
onkeydown属性で関数を呼び出す場合、第1引数にイベント・オブジェクトを渡すことができる。
<tag onkeydown="func(arguments[0])">
onkeydown属性で関数を呼び出す場合、第2引数にエレメント・オブジェクトを渡すことができる。
<tag onkeydown="func(arguments[0], this)">
JavaScriptでキーダウンのイベントハンドラを指定する。
object.onkeydown = function(){ script };
object.addEventListener("keydown", script);
jQueryでキーダウンのイベントハンドラを指定する。
window.jQuery(expr).on("keydown", function([event]){ script });
jQuery(expr).on("keydown", function([event]){ script });
$(expr).on("keydown", function([event]){ script });
テキスト入力フィールド内でキーを押した後にキーを離すと、onkeydown属性に指定したJavaScriptが実行されるサンプルを次に示す。
<fieldset onkeydown="keyDown('fieldset')" onkeyup="keyUp('fieldset')">
<input type="text" onkeydown="keyDown('input')" onkeyup="keyUp('input')">
</fieldset>
<p>input: <span id="input"></span></p>
<p>fieldset: <span id="fieldset"></span></p>
<script>
function keyDown(id) {
document.getElementById(id).innerHTML = "keydown";
}
function keyUp(id) {
document.getElementById(id).innerHTML = "keyup";
}
</script>
input:
fieldset:
次に示すイベント・ハンドラ・コンテンツ属性は、任意のHTML要素に指定することができる。
keydownイベントはバブリング(下位の要素から上位の要素へ伝播)する。
HTMLが次に示す構造である場合、input要素で発生したkeydownイベントは、fieldset、form、body及びhtml要素へと伝播していく。
もしfieldset、form、body及びhtml要素にonkeydown属性を指定した場合、それらのJavaScriptも実行される。
keydownイベントはキャンセル可能である。
keydownイベントをキャンセルすると、デフォルト動作が行われなくなる。
keydownイベントは KeyboardEventインタフェースを実装している。
KeyboardEventインタフェースは次に示すプロパティを持つ。
Web Hypertext Application Technology Working Group (2022) "Web application APIs" HTML Living Standard
World Wide Web Consortium (2021) UI Events