3

ユーザーが開始日と終了日を設定する2つの日付入力を取得しました。その後、ユーザーが選択した2つの日付の間の日数をロードするラベルを取得しました。

2つの日付入力は同じクラス「fecha」を取得しました。データ入力と日数の操作は次のように処理します。

$('.fecha').live("change", function(){

    var fecha1 = $('#E2Del').val();
    var fecha2 = $('#E2Al').val();

    var ini_split = fecha1.split('-');
    var ini_full = ini_split[0]+ini_split[1]+ini_split[2];

    var fin_split = fecha2.split('-');
    var fin_full = fin_split[0]+fin_split[1]+fin_split[2];

    var test = fin_full - ini_full;        
    console.log(test);
  });

すべてがうまく機能しますが、問題は、各入力で選択した日付を変更した後ではなく、日付入力をクリックしたときにこのイベントが発生することです。したがって、これを機能させるには、値を設定した後、2つの入力のいずれかをクリックする必要があります。

要素をクリックしたときではなく、日付を入力した後にこのイベントを発生させる方法についてのアイデアはありますか?

前もって感謝します

4

1 に答える 1

1

古い値が表示されている理由は、changeイベントが発生したときに、ネイティブの結果(つまり、値の変更)がまだ発生していないためです。実際、。でキャンセルできますe.preventDefault()

あなたがする必要があるのは、イベント自体を調べることです:

e.originalEvent.newValue

...割り当てられている値を返します。

于 2013-02-20T17:43:11.870 に答える