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など)はキーダウンイベントをトリガーしますが、キー押下イベントはトリガーしません。