HTMLタグのonkeyup属性には、キーを離したときに実行するJavaScriptを記述する。マウスのクリック動作でkeyupイベントは発生しない。
<tag onkeyup="javascript">
onkeyup属性で関数を呼び出す場合、第1引数にイベント・オブジェクトを渡すことができる。
<tag onkeyup="func(arguments[0])">
onkeyup属性で関数を呼び出す場合、第2引数にエレメント・オブジェクトを渡すことができる。
<tag onkeyup="func(arguments[0], this)">
テキスト入力フィールド内でキーを押した後にキーを離すと、onkeyup属性に指定した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:
onkeyup等のイベント・ハンドラ・コンテンツ属性は、任意のHTML要素に指定することができる。
keyupイベントはバブリング(下位の要素から上位の要素へ伝播)する。
HTMLが次に示す構造である場合、input要素で発生したkeyupイベントは、fieldset、form、body及びhtml要素へと伝播していく。
もしfieldset、form、body及びhtml要素にonkeyup属性を指定した場合、それらのJavaScriptも実行される。
keyupのイベントオブジェクトは KeyboardEvent インタフェースを通じてアクセスできる。
KeyboardEvent インタフェースは次に示すプロパティを持つ。
onkeyup属性を使わずに、イベントリスナーを使ってイベント処理を行うこともできます。
<button type="button" id="btn">
Button
</button>
<p>
Event: <span id="evnt"></span>
</p>
<script>
e = document.getElementById("btn");
e.addEventListener("keydown", function(){
document.getElementById("evnt").innerHTML = "keydown";
});
e.addEventListener("keyup", function(){
document.getElementById("evnt").innerHTML = "keyup";
});
</script>
Event:
Web Hypertext Application Technology Working Group (2022) "Web application APIs" HTML Living Standard
World Wide Web Consortium (2021) UI Events