2017-05-11 31 views
1

我使用的是初始化像這樣的自舉日期選擇器...jQuery的驗證器可以通過引導日期選擇器後,前值

$(".datepicker").datepicker({ 
    language: "en-GB", 
    startDate: "01/01/1900", 
    endDate: "31/12/2200", 
    autoclose: true, 
    forceParse: false 
}); 

然後,我有一個自定義的jQuery驗證這是...

$(function() { 
    $.validator.addMethod("futuredaterequired", function (value, element, params) { 
     //Validation code here 
    }); 
}); 

但是,一旦我從日期選擇器中進行選擇,驗證方法中的value就是在日期選擇器中選擇的以前的值。不是新選定的值。

所以我嘗試使用element再次獲取值,但也返回datepicker的以前的值。如果我在整個方法上放了一個setTimeOut,那麼value是正確的,但超時會導致其他問題。

有關如何解決此問題的任何想法?

回答

0

唯一的解決這個我現在已經發現的是...

$(".datepicker").datepicker({ 
    language: "en-GB", 
    startDate: "01/01/1900", 
    endDate: "31/12/2200", 
    autoclose: true, 
    forceParse: false 
}) 
.on('changeDate', function(e) { 
    $(this).valid(); 
}); 

這種方式,實際值在輸入改變後jQuery驗證運行。

該方法仍然在初始選擇日期時運行,並仍使用先前的日期值。但是,當它在changeDate上第二次運行時,它使用正確的值。

不理想...但它的工作原理。如果您有更好的解決方案,請告訴我。