我正在使用一个像这样初始化的bootstrap datepicker ......
$(".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
就是在datepicker中选择的先前值。不是新选择的值。
所以我尝试使用element
再次获取值,但是这也会返回datepicker的先前值。如果我在整个方法上放置setTimeOut
,那么value
是正确的,但是超时会导致其他问题。
关于如何解决这个问题的任何想法?
答案 0 :(得分: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
上第二次运行时,它会使用正确的值。
不理想......但它确实有效。如果您有更好的解决方案,请告诉我。