msdn には 3 つの違いがあります。 名前 説明
onkeypress
このイベントは、ユーザーが任意の英数字キーを押して放したときに発生します。システム ボタン (矢印キーやファンクション キーなど) が認識されません。
onkeyup
このイベントは、ユーザーが前に押したキーボードのキーを放したときに発生します。
onkeydown
このイベントは、ユーザーがキーボードのキー (矢印キーやファンクション キーなどのシステム ボタンを含む) を押すと発生します。
======================
<script> <br>function checkForm(){ <br>if(event.keyCode ==13) { <br>event.keyCode =9; <br>} <br></script>
<フォーム名 ="form1"< ;input type ="text" name = "text1" onkeydown = "checkForm()">
form>
Enter を押すと、フォーカスがテキスト ボックスからボタンに移動します。 「onkeypress」に変更すると、フォーカスが移動したり消えたりすることはありません。ただし、「onkeyup」に変更すると、フォーカスが失われ、ページがリロードされます。
テストでは、onkeydown イベントが最初に実行され、次に onkeypress、最後に onkeydown と onkeypress が onkeyup の実行に影響を与えることがわかりました。イベント同僚が 3 人いる場合、全員がアラートの場合、アラートは 2 つだけポップアップし、アップ イベントのアラートはポップアップしません。
3 つのイベント応答には 1 つの違いがあります。つまり、onkeydown および onkeypress イベントに応答するときに入力された文字はシステムによって受け入れられませんが、onkeyup に応答するときに入力ストリームは受け入れられます。システムによって。 onkeydown は onkeypress の前に実行されるため、上記の例に基づいて、onkeydown がトリガーされたときに入力ストリームがシステムに入ろうとしていることがわかります。つまり、onkeydown イベントが完了するとすぐに入力ストリームが入ります。システムに依存するため、変更することはできません。したがって、onkeydown イベントを使用して、ユーザーが押したキーを変更できます。onkeypress イベントは、入力ストリームがシステムに入った後にトリガーされますが、入力ストリームはシステムによって処理されていないため、この時点では入力ストリームを変更できません。時間。onkeyup はシステムによって処理された後に発生します。