2012-03-21 11 views
7

jqueryを使用しています。jqueryでOnchange入力イベントが発生しない

フォームにテキストが入力されています。変更イベントを処理したいと思います。

$("#my_input").change(function(){alert('123');}); 

イベントは、私は手動でフィールドを編集するとき、通常は解雇されていますが、私は(時には外部スクリプトとの)スクリプトを使用して、フィールドの値を変更すると、それは動作しません。

解決方法はありますか?

とありがとうございます。

答えて

11

変更イベントは、プログラムによる変更を検出するようには設計されていません。値を設定するときは、しかし、手動でイベントをトリガすることができます

$('#my_input').trigger('change'); 

ショートカット:

$('#my_input').change(); 
+1

入力がプログラムによって変更されたときに発生するイベントはありますか? – Youcef04

+0

@ Youcef04:いいえ、JavaScriptはその種の監視をサポートしていません。いくつかの他の言語は、このようなものを可能にする構造体を持っていますが、JavaScriptではありません。 – jwueller

+0

ありがとう、他の場所を探す必要はありません。 – Youcef04

0

火手動で、次の2つの関数のいずれかを使用して:

$('#my_input').trigger('change'); 
$('#my_input').change(); 
0

をすることができますがライブ/デリゲートを使用して変更イベントをバインドする

$("#my_input").live('change',function(){alert('123');}); 
0

ここにコードがあります

$("input[type='text']").change(function() { 
    // check input ($(this).val()) for validity here 
}); 
関連する問題