当我聚焦文本框时,jquery验证不会消失

时间:2012-06-19 08:59:58

标签: jquery jquery-validate validation

我正在使用表单中的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显示验证错误,但是如果我输入一些有效日期显示错误后验证消息不会消失,直到我提交我的表格。应该是什么问题?

1 个答案:

答案 0 :(得分:0)

如果只更改endDate,验证应该正常工作(请参阅here,提交表单,然后修复endDate,错误消息将消失),但我猜你的问题是当你更改startDate以使用endDate ...

更正问题

在这种情况下,当startDate也发生变化时,您需要触发endDate验证:

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

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

您可以在此处查看该版本:http://jsfiddle.net/ryleyb/zhN6q/1/