0

我正在使用我的代码如下形式的 jquery 验证

jQuery

$(document).ready(function () {
    $('#myformid').validate();
    $.validator.addMethod("endDate", function (value, element) {
        var startDate = $('.startDate').val();
        return Date.parse(startDate) <= Date.parse(value);
    }, "* End date must be Equal/After start date");



});

我正在尝试将两个日期与 jquery 进行比较,如果结束日期大于开始日期,则 jquery 显示验证错误,但在显示错误后,如果我输入一些有效日期,验证消息不会消失,直到我提交表单。应该是什么问题?

4

1 回答 1

0

如果您仅更改 endDate,则验证应该可以正常工作(请参见此处,提交表单,然后修复 endDate,错误消息将消失),但我猜您的问题是当您更改 startDate 以更正问题时与结束日期...

在这种情况下,您还需要endDate在 startDate 更改时触发验证:

$('input[name="startDate"]').blur(function(){
    if ($('input[name="endDate"].error').length){
        validateObject.element($('input[name="endDate"]'));
    }        
});

if 语句只是检查 endDate 输入是否已经处于“错误”状态,如果是则重新验证它。 validateObject是 validate 对象,它是从$('#myformid').validate().

你可以在这里看到那个版本:http: //jsfiddle.net/ryleyb/zhN6q/1/

于 2012-06-19T15:34:48.377 回答