jqueryで入力テキストのイベントをリッスンするために使用したいのです.on()
が、これは私のコードですが、初めてキーを押したときにキーダウンが機能しません:
$(s.join(", ")).on('keyup paste change focus blur keydown', function(e)
{
if($(e.target).val()!='')
console.log(e.which);
})
jqueryで入力テキストのイベントをリッスンするために使用したいのです.on()
が、これは私のコードですが、初めてキーを押したときにキーダウンが機能しません:
$(s.join(", ")).on('keyup paste change focus blur keydown', function(e)
{
if($(e.target).val()!='')
console.log(e.which);
})
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/ を確認してください (コンソール ログを参照してください)。
それが機能していないと確信してkeydown
いますか?
これを試して、結果を書いてください
console.log(e.type + ':' + e.which)
;
ここにフィドルがあります:http://jsfiddle.net/3F9FP/
代わりに keypress() を使用してみることができます:
$(s.join(", ")).keypress(function(e) {
console.log(e.which);
});
セレクター $(s.join(", ")) が要素を返すことを確認してください (null ではない)
バニラ 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);