3

我有两个日期输入,用户在其中设置开始日期和结束日期。之后,我得到一个标签,在其中加载用户选择的两个日期之间的天数。

两个日期输入有一个相同的类:“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);
  });

一切都很好,问题是当我单击日期输入时触发此事件,而不是在我更改每个输入的选定日期之后。因此,要使其正常工作,我需要在设置值后单击两个输入中的任何一个。

关于如何在日期输入之后而不是在我单击元素时触发此事件的任何想法?

提前致谢

4

1 回答 1

1

您看到旧值的原因是当change事件触发时,本机后果(即更改值)尚未发生 - 实际上您可以使用e.preventDefault().

您需要做的是检查事件本身:

e.originalEvent.newValue

...将返回正在分配的值。

于 2013-02-20T17:43:11.870 回答