jQuery 验证器使用 bootstrap 日期选择器之后的先前值

jQuery validator using previous value after bootstrap datepicker

我正在使用像这样初始化的 bootstrap 日期选择器...

$(".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 再次获取值,但是这也是 returns 日期选择器的先前值。如果我在整个方法上放置 setTimeOut 那么 value 是正确的,但是超时会导致其他问题。

关于如何解决这个问题有什么想法吗?

我现在找到的唯一解决方案是...

$(".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 上第二次 运行 时,它使用了正确的值。

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