2013-02-20 51 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

相關問題