Jquery ui jquery日期选择器和自定义验证

Jquery ui jquery日期选择器和自定义验证,jquery-ui,validation,jquery-validate,jquery-ui-datepicker,Jquery Ui,Validation,Jquery Validate,Jquery Ui Datepicker,我需要添加自定义验证(我认为)来验证用户的输入。以下是我的用例: 我使用jquery ui datepicker选择日期,本地化如下: $.datepicker.SetDefault($.datepicker.regional[currentLocale]) 我使用Basistance验证插件,并使用date:true的规则,这些规则在不同的格式下不起作用(或者如果有,请告诉我怎么做!)。我自己做了这样的日期验证方法 $.validator.addMethod("validDate", f

我需要添加自定义验证(我认为)来验证用户的输入。以下是我的用例: 我使用jquery ui datepicker选择日期,本地化如下:

$.datepicker.SetDefault($.datepicker.regional[currentLocale])

我使用Basistance验证插件,并使用
date:true
的规则,这些规则在不同的格式下不起作用(或者如果有,请告诉我怎么做!)。我自己做了这样的日期验证方法

   $.validator.addMethod("validDate", function(value) {
        return parseDateString(value) != null;
    }, jQuery.validator.messages.date);
这一切都非常有效,除了在datepicker中选择日期时,在更改componet的值之前启动验证之外!所以我实际上验证了前面的值

有人能为我找到解决办法吗?
提前感谢:)

您可以在
日期选择器弹出窗口中触发验证:

$("#birthdate").datepicker({
    onClose: function() {
        /* Validate a specific element: */
        $("form").validate().element("#birthdate");
    }
});
使用
validate
的功能可以立即验证特定字段


我创建了一个示例,其中任何日期的年份!=2011将触发失败的验证。

使用此onClose方法的另一种方法是验证动态日期选择器。如果页面加载完毕,然后添加了一个带有日期选择器的输入元素,那么验证消息将稍微不同步。如果用户试图在未选择日期的情况下发布,则会显示消息。在此场景中选择日期后,消息将不会被删除(除非再次选择日期)
onClose:function(){$(this).valid();}
将导致消息正确同步。这个答案对我帮助很大,但我已经被一个奇怪的问题困扰了几天。我有两个带有自定义验证的日期选择器,上面的方法非常有效。然后,通过一个JavaScript函数,我又添加了两个,验证只每隔一次启动一次。环顾四周,我发现了这个(),因此在我的onClose事件中,在validate:$(“form#birthdate”).trigger(“blur”)之后添加了(修改以匹配上面的示例);现在它开始工作了。