2

jqueryで入力テキストのイベントをリッスンするために使用したいのです.on()が、これは私のコードですが、初めてキーを押したときにキーダウンが機能しません:

$(s.join(", ")).on('keyup paste change focus blur keydown', function(e)
{
   if($(e.target).val()!='')
       console.log(e.which);
})
4

6 に答える 6

6

keydown イベントが発生しますが、それまでに文字はまだ追加されていません。そのため、値が空かどうかを確認してもうまくいきません。次のようなことを試してみてください。

$(s.join(", ")).on('keyup paste change focus blur keydown', function(e)
{
if($(e.target).val()!='' || e.type == 'keydown')
    console.log(e.which);
})

keydown と keyup の値のデモについては、http://jsfiddle.net/vtUdE/ を確認てください (コンソール ログを参照してください)。

于 2013-08-08T09:48:20.337 に答える
0

それが機能していないと確信してkeydownいますか?

これを試して、結果を書いてください

console.log(e.type + ':' + e.which);

ここにフィドルがあります:http://jsfiddle.net/3F9FP/

于 2013-08-08T08:52:59.387 に答える
0

代わりに keypress() を使用してみることができます:

$(s.join(", ")).keypress(function(e) {
  console.log(e.which);
});

セレクター $(s.join(", ")) が要素を返すことを確認してください (null ではない)

于 2013-08-08T08:49:04.423 に答える
0

バニラ JavaScript では、「入力」イベントを入力フィールドにアタッチして、値を即座に取得できます。

HTML:

<input type="text" name="text-input" value="" />

Javascript:

function handleInput(e) {
  console.log(e.target.value)
}

const textInput = document.querySelector("input[name='text-input']");
textInput.addEventListener("input", handleInput);
于 2019-12-21T17:35:33.043 に答える