私はこれを単純にコード化しています:
<body>
<input type="text" onkeyup="this.value = (new Date()).getSeconds()" onchange="alert(1)" />
</body>
キーを押したときにテキストボックスの値が変更された理由がわかりませんが、onchangeイベントが発生しません。onchangeイベントを発生させるにはどうすればよいですか?
私はこれを単純にコード化しています:
<body>
<input type="text" onkeyup="this.value = (new Date()).getSeconds()" onchange="alert(1)" />
</body>
キーを押したときにテキストボックスの値が変更された理由がわかりませんが、onchangeイベントが発生しません。onchangeイベントを発生させるにはどうすればよいですか?
フォーカスを離すと(変更を行ったonchange
場合)、が起動します。この動作はtext
、textarea
入力タイプでのみ発生します。これは、JavaScriptが入力の完了を認識していないためです。
コードにチェックボックスがある理由はわかりませんが、何でもかまいません。誠意をこめて、理由をお伝えすることはできませんが、問題は入力の動的な値の変更です(変更はユーザーによって実行されていない可能性がありますが、実際にはわかりません)。 onkeyup内のコードを削除すると機能します。いずれにせよ、入力がフォーカスを失ったときにコードを実行したい場合は、onblur
代わりに使用できますが、その場合はより正確です。