2013-02-20 52 views
2

我有两个日期输入,其中用户设置开始日期和结束日期。之后,我得到了一个标签,用于加载用户选择的两个日期之间的天数。设置值之前发生了jquery更改事件

两个日期输入有一个相同的类:“出生日期”和我处理的数据输入和天操作这样的数字:

$('.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); 
    }); 

everyting做工不错,问题是,这个事件当我点击日期输入时触发,而不是在我改变每个输入的选定日期后。所以为了使这个工作,我需要点击任何两个输入后,我设置的值。

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

在此先感谢

+2

'live'?什么是你的jQuery版本? – 2013-02-20 17:37:56

+0

你能告诉我们你正在处理的标记,可能是http://www.fiddle.net? – Barney 2013-02-20 17:40:33

回答

1

你看到旧值的原因是,当change事件触发,本地后果(即,改变的值)还没有发生 - 事实上,你可以将其取消与e.preventDefault()

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

e.originalEvent.newValue 

...将返回被赋值。

+0

我检查了,'event'对象没有'originalEvent'属性。 – 2015-10-14 18:59:52

+0

这个工作在2年半前被回答的时候。 'originalEvent'属性仍然存在AFAICT(使用Chrome和[此示例](http://jsbin.com/batutu/edit?js,output)) - 但它是空的。不过,我可以使用'this.value'来获取值。奇怪! – Barney 2015-10-15 15:01:47

相关问题