jQueryはキーを押した後に入力値を取得します



Jquery Get Input Value After Keypress



解決:

これはかなり古い投稿であることに気づき、同じ問題に苦しんでいたので、とにかく答えを提供します。

あなたは使用する必要があります代わりに「入力」イベントを実行し、.onメソッド。これは速いです-の遅れなしでキーアップし、あなたが説明する不足している最新のキー押下の問題を解決します。



$( '#dSuggest')。on( 'input'、function(){var dInput = this.value; console.log(dInput); $( '。dDimension:contains(' '+ dInput +' ')') .css( 'display'、 'block');});

こちらのデモ


それの訳はキープレスイベントが発生します 新しいキャラクターがに追加されます要素の値(つまり、最初のkeypressイベントは、最初の文字が追加される前に発生しますが、値はまだ空です)。あなたは使用する必要があります代わりに、起動されるキーアップ キャラクターが追加されました。



あなたの要素が#dSuggestはと同じですinput:text [name = dSuggest]このコードを大幅に簡略化できます(そうでない場合は、と同じ名前の要素を使用します)別の要素のIDはお勧めできません)。

$( '#dSuggest')。keypress(function(){var dInput = this.value; console.log(dInput); $( '。dDimension:contains(' '+ dInput +' ')')。css( '表示ブロック'); }); 

使用するkeypressの代わりに.keyup。

また使用する$(this).val()または単にthis.valueは、現在の入力値にアクセスします。



デモ ここ

についての情報.keypress from jQuery docs、

keypressイベントは、ブラウザがキーボード入力を登録するときに要素に送信されます。これは、キーが繰り返される場合を除いて、キーダウンイベントに似ています。ユーザーがキーを押し続けると、キーダウンイベントが1回トリガーされますが、挿入された文字ごとに個別のキープレスイベントがトリガーされます。さらに、修飾キー(Shiftなど)はキーダウンイベントをトリガーしますが、キー押下イベントはトリガーしません。