4

テキストボックスのテキストが変更されるたびにイベントにバインドする方法を探しています。今、私はこのようなものを持っています:

$("#inputPane").change(function() { alert("Changed!"); });

ただし、これはテキストボックスがフォーカスを失ったときにのみ呼び出されます。新しいキャラクターが追加、削除、またはカット/ペーストが発生するたびにイベントを取得したい。

これにはサードパーティのプラグインを使用したくありません。純粋なjqueryを使用する方が良いでしょう。

4

3 に答える 3

3

最良のオプションは、keyupイベントを使用することです。

$("#inputPane").keyup(function() {
    alert("Changed!");
});

ただし、、、、Ctrlなどの任意Altのキーがクリックされるたびに起動することを考慮する必要がありますShift

于 2012-05-19T16:25:29.337 に答える
3

キー入力、貼り付けなどをカバーするために、おそらくいくつかのイベントが必要になります。

$("#inputPane").on('keyup paste click whatever', function() {
    alert("Changed!");
});

何らかの理由で複数回発火した場合:

var fire = true;

$("#inputPane").on('keyup paste click whatever', function() {
    if (fire) {
       fire=false;            
       alert("Changed!");
    }
    setTimeout(function() {fire=true}, 200);
});
于 2012-05-19T16:28:31.923 に答える
2

変更をキャプチャする方法の例を次に示します

$('#Textbox1, #Textbox2').each(function () {

    $(this).bind("propertychange keyup input paste", function (event) {
        alert("changed");
    });
});

これをテキストボックスのグループで使用しますが、1回だけ起動します

于 2012-05-19T16:29:04.297 に答える