jQuery验证器使用bootstrap datepicker之后的先前值

时间:2017-05-11 12:10:11

标签: jquery bootstrap-datepicker customvalidator

我正在使用一个像这样初始化的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是正确的,但是超时会导致其他问题。

关于如何解决这个问题的任何想法?

1 个答案:

答案 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上第二次运行时,它会使用正确的值。

不理想......但它确实有效。如果您有更好的解决方案,请告诉我。