1

私のasp.netソリューションには、テキスト入力ボックスと検索ボタンがあります。テキスト入力フィールドには onkeyup jquery イベントがあるため、ユーザーがキーを押すと自動的に検索ボタンがクリックされます。ボタンを手動でクリックすることもできます。

しかし、私が気付いたのは、入力中に ENTER キーを押すと、 onkeyup イベントがトリガーされることです。ENTER キーが押された場合に機能を無効にする方法、またはそれが ENTER キーであるかどうかを検出して if ステートメントなどを使用する方法を教えてください。

もう 1 つ起こっていることは、入力ボックス内のテキストに問題がある場合、警告メッセージ ボックスを表示することです。次に、Enter キーを押してボックスを閉じると、何らかの形で onkeyup イベントがトリガーされ、アラート ボックスが再び表示されます...

ありがとう。

4

5 に答える 5

5

if (evt.keyCode != 13)関数内のすべてのアクションの前に追加します:)

于 2013-07-10T14:35:42.517 に答える
2

イベントで .which を使用して、押されたキーの KeyCode を特定できます (ENTER = 13)。

$('#input').keyup(function(event) {
    if(event.which == 13)
    {
         //respond to enter keypress
    }


});

また、このサイトを使用して、さまざまなキーのキーアップ/ダウンなどに関する情報を簡単に見つけることができます.

お役に立てれば!

于 2013-07-10T14:40:50.690 に答える
1

お役に立てれば。

<script type="text/javascript"> 

function stopRKey(evt) { 
  var evt = (evt) ? evt : ((event) ? event : null); 
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
  if ((evt.keyCode == 13) && (node.type=="text"))  {return false;} 
} 

document.onkeypress = stopRKey; 

</script>
于 2013-07-10T14:35:17.843 に答える
1

onkeyupアラートが close であるため、アラートを ENTER で閉じると、アラートの後にイベントがトリガーされます。したがって、アラートが閉じonkeydownられてドキュメントがフォーカスを取り戻した後、キーを離すと、テキストボックスのonkeyupイベントがトリガーされます。

前述のようにif (event.keyCode != 13)、Enter キーが押されたキーではないかどうかをテストするために を追加できます。

より良い解決策は、別のイベントを使用することです。の代わりにonkeyup、 を使用しますoninput

oninputユーザーがテキストボックスの値を変更すると、イベントがトリガーされます。

このイベントは、ユーザーがテキスト ボックスに何かを書き込んだり、何かを削除したりしたときにのみ発生します。ENTER キーが押されたとき、またはテキストボックスの値を変更しない他のキー (矢印キーなど) が押されたときはオフになりません。

oninput探している機能には、イベントの方が適している場合があります。

oninputイベントをご利用の場合は不要ですif

oninputイベントのデモンストレーションのフィドル:こちら

于 2013-07-10T14:49:36.113 に答える
0

今後の参考のために、次の便利なサイトを見つけました。

http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

幸運を!

于 2013-07-10T18:09:03.700 に答える