2011-12-18 15 views
1

私は入力値を変更するときに機能するjQueryのonChangeまたは.changeのようなイベントを使用しようとしています。入力の動的変更をトリガする方法は?

これはJSである:

$(function() { 
    $('#deadline').change(function() { 
     alert('Message'); 
    }); 
}); 

これは形式である:

<form> 
     <input type="title" id="title" /> 
     <input type="text" id="deadline" value="<?=date('d-m-Y')?>" /> 

     <input type="submit" value="Submit" /> 
</form> 

期限の入力は、日付ピッカー(http://javascriptcalendar.org/javascript-date-picker.php)を使用し締め切り入力をクリックすると、http://javascriptcalendar.org/javascript-date-picker.phpのような日付が選択され、値の変更が入力され、この変更はjsコードでアラートをトリガーしません。

Anyoこのような経験はありましたか?

ありがとうございます。

+1

その特定の日付ピッカーウィジェットには、イベントの「onSelect」または「onChange」タイプのクリアイベントハンドラがありません。私は、文書化されていないものがあるかどうかを著者に連絡するか、変更イベントをサポートする別のウィジェットを使用することをお勧めします。 – scunliffe

+0

日付ピッカーがうまくいくと思います。私が到達したいのは、その日付ピッカーを使用して値の変更をトリガーすることです。私はあなたが誤解していると思います、私は入力ボックスに変更をトリガーしようとしています。 – mentorgashi

+1

私は理解しています。トリックは、カレンダーウィジェットがユーザーアクション(ユーザー入力)の代わりにプログラムで(スクリプトを介して)フィールドの値を設定するということです。その結果、入力のonchangeイベントは発生しません。したがって、最終的な開発者が何か変更されたことを示すイベントに「フック」するための何らかの手段を提供するのがウィジェットの責任です。例えばjQueryUIのdatepickerには、開発者が任意の動作をトリガできる「onSelect」イベントがあります。投稿したウィジェットを見ると、あなたに役立つイベントは公開されていません。 – scunliffe

答えて

4

DOMイベントは、javascriptを介して要素のプロパティを変更することによってトリガーされません。通常、実際のライブラリが提供するコールバックハンドラを使用してフィールドが変更されたことを確認しますが、この特定のライブラリにはコールバックオプションがないように見えます。 jQuery UI Datepickerを使用することをお勧めします。これにはこのオプションがあります。

+0

それはたくさんのことを説明しています...ありがとう – mentorgashi

関連する問題