シナリオ: readonlyとしてマークされた控えめなテキスト フィールド。クリックすると、日付ピッカーが表示されます。日付ピッカーから日付をクリックすると、そのテキスト フィールドに 10/05/2013 のような内容が入力されます。
問題: 2013 年 10 月 5 日から 2013 年 5 月 10 日金曜日までのテキストを再フォーマットする必要があります。これを行うには、テキスト フィールド内の値がいつ変更されたかをキャッチする必要があります。ここから問題が始まります。典型的なイベントは次のとおりです。
change
: 違いを確認する前にテキスト フィールドのフォーカスを外す必要があるため (フォーカスされていると仮定して)、これを使用することはできません。keyup
: ユーザーがキーを押していないため、これを使用できません oOpaste
: 少なくともユーザーによる貼り付けは行われていませんinput
: これでうまくいくと思っていたのですが、うまくいきません。このイベントがいつ発生するかは実際にはよくわかりませんが、ここでは役に立ちません:(
私のコードは次のようになります。
$('input[type="text"]').datepicker('hide');
// That sets up the datepicker (as per a plugin) to pop up
// when I click the text box, working fine :D
$('input[type="text"]').live('change keyup paste input', function() {
// Trying everything out of desperation :/
alert($(this).value());
});
質問:説明されているシナリオで、この入力フィールドのテキストが変更されたときにどのようにキャッチできますか?