138

テキストボックスの外側をクリックするまで、テキストボックスのjQuery変更イベントが発生しないことがわかりました。

HTML:

<input type="text" id="textbox" />

JS:

$("#textbox").change(function() {alert("Change detected!");});

JSFiddle でデモを見る

私のアプリケーションでは、テキストボックス内の文字が変更されるたびにイベントが発生する必要があります。代わりにkeyupを使ってみました...

$("#textbox").keyup(function() {alert("Keyup detected!");});

...しかし、keyup イベントが右クリック アンド ペーストで発生しないことは既知の事実です。

回避策はありますか?両方のリスナーを使用すると問題が発生しますか?

4

7 に答える 7

88

最新のブラウザーでは、次のinputイベントを使用できます。

デモ

$("#textbox").on('input',function() {alert("Change detected!");});
于 2013-06-26T10:30:09.213 に答える
4
$(this).bind('input propertychange', function() {
        //your code here
    });

これは、入力、貼り付け、マウスの右クリックによる貼り付けなどに使用できます。

于 2014-06-20T17:00:35.047 に答える
2

これを試して:

$("#textbox").bind('paste',function() {alert("Change detected!");});

JSFiddle のデモを参照してください。

于 2013-06-26T10:24:44.240 に答える
0

あなたのコメントを読んで、私は汚い修正をしました。これは正しい方法ではありませんが、回避策になる可能性があります。

$(function() {
    $( "#inputFieldId" ).autocomplete({
        source: function( event, ui ) {
            alert("do your functions here");
            return false;
        }
    });
});
于 2016-04-26T04:39:05.893 に答える
0

以下のコードを試してください:

$("#textbox").on('change keypress paste', function() {
  console.log("Handler for .keypress() called.");
});
于 2013-06-26T10:25:40.827 に答える