1

JavaScript を使用して、他のテキスト ボックスの変更に対して行われた計算でテキスト ボックスの値を動的に設定するプロジェクトに変更を加えていますが、元の JavaScript ファイルを変更したくありません。

元の JavaScript によってテキスト ボックスの値が変更されたことを検出するにはどうすればよいですか。値が変更されたことを検出してから、独自の関数を起動する必要があります。

これが簡単であれば、jqueryを使用することにオープンです。

試した:

   $("#total_amt").on("change", function() {
        alert("Handler for .change() called.");
    });

しかし、これは、動的に変更されたときではなく、total_amt の値を手動で変更したときにのみ機能します。

4

2 に答える 2

2

できません。最善の解決策は、値を変更して自分でフックするときに独自のイベントを発生させることです。このようなもの:

// after changing the value in code:
$('#total_amt').val(newValue).trigger('dynamicChange');

// event hook
$("#total_amt").on("change dynamicChange", function() {
    alert("Handler for .change() called.");
});
于 2013-06-27T11:19:53.010 に答える
0

これを試して:

 $("#total_amt").on("input", function() {
     alert("Handler for .change() called.");
 });

これは HTML5 のものですが、最新のブラウザーでは機能しませんが、他のブラウザーでは機能しません。

var lastValue = '';
$("#total_amt").on('change keyup paste', function() {
    if ($(this).val() != lastValue) {
        lastValue = $(this).val();
        calert("Handler for .change() called.");
    }
});
于 2013-06-27T11:19:03.307 に答える