一旦选择了日期,如何在jQuery UI datepicker上触发验证?

前端之家收集整理的这篇文章主要介绍了一旦选择了日期,如何在jQuery UI datepicker上触发验证?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些客户端验证,检查以确保EndDate大于或等于StartDate.验证有效,但它并没有像我希望的那样触发.我想在EndDate的日期选择器上选择日期后立即触发.我怎么能做到这一点?我尝试过以下方法

Datepicker代码

$(".datepicker").datepicker({
    changeMonth: true,changeYear: true,onClose: function () {
        $(this).focusout();
    }
});

验证码:

$("#EndDate").focusout(function () {
    jQuery.validator.addMethod('datetimegreaterthanorequal',function (value,element,params) {
        var startDateValue = $(params.element).val();

        return Date.parse(value) >= Date.parse(startDateValue);
    },'');

    jQuery.validator.unobtrusive.adapters.add('datetimegreaterthanorequal',['startdate'],function (options) {
        var prefix = options.element.name.substr(0,options.element.name.lastIndexOf('.') + 1),other = options.params.startdate,fullOtherName = appendModelPrefix(other,prefix),element = $(options.form).find(':input[name=' + fullOtherName + ']')[0];

        options.rules['datetimegreaterthanorequal'] = {
            element: element
        };
        if (options.message) {
            options.messages['datetimegreaterthanorequal'] = options.message;
        }
    });

    function appendModelPrefix(value,prefix) {
        if (value.indexOf('*.') === 0) {
            value = value.replace('*.',prefix);
        }
        return value;
    }
})

解决方法

您正在我们的.focusout()事件中分配验证器.完全删除该块,因为您只希望它们分配一次.

您可以轻松触发onSelect选项的验证,如下所示:

$(".datepicker").datepicker({
    changeMonth: true,onSelect: function () {
        $("#myForm").valid();
    }
});
原文链接:https://www.f2er.com/jquery/177619.html

猜你在找的jQuery相关文章