JQuery验证

JQuery验证,jquery,validation,Jquery,Validation,我试图让我的表单进行验证…所以基本上它是工作的,但有点太好了,我有两个文本框,一个是开始日期,另一个是结束日期,格式为mm/dd/yyyy 如果开始日期大于结束日期…则出现错误 如果结束日期小于开始日期…则出现错误 如果开始日期小于今天的日期…则出现错误 唯一的问题是,当我纠正错误时,错误警告仍然存在……以下是我的代码: dates.change(function () { var testDate = $(this).val(); var otherDa

我试图让我的表单进行验证…所以基本上它是工作的,但有点太好了,我有两个文本框,一个是开始日期,另一个是结束日期,格式为mm/dd/yyyy

如果开始日期大于结束日期…则出现错误 如果结束日期小于开始日期…则出现错误 如果开始日期小于今天的日期…则出现错误

唯一的问题是,当我纠正错误时,错误警告仍然存在……以下是我的代码:

    dates.change(function () {
        var testDate = $(this).val();
        var otherDate = dates.not(this).val();
        var now = new Date();
        now.setHours(0, 0, 0, 0);

        // Pass Dates
        if (testDate != '' && new Date(testDate) < now) {
            addError($(this));
            $('.flightDateError').text('* Dates cannot be earlier than today.');
            isValid = false;
            return;
        }

        // Required Text 
        if ($(this).hasClass("FromCal") && testDate == '') {
            addError($(this));
            $('.flightDateError').text('* Required');
            isValid = false;
            return;
        }
        // Validate Date
        if (!isValidDate(testDate)) {
            // $(this).addClass('validation_error_input');  
            addError($(this));
            $('.flightDateError').text('* Invalid Date');
            isValid = false;
            return;
        }
        else {
            // $(this).removeClass('validation_error_input');
            removeError($(this));
            if (!dates.not(this).hasClass('validation_error_input'))
                $('.flightDateError').text(' ');
        }

        // Validate Date Ranges
        if ($(this).val() != '' && dates.not(this).val != '') {
            if ($(this).hasClass("FromCal")) {
                if (new Date(testDate) > new Date(otherDate)) {
                    addError($(this));
                    $('.flightDateError').text('* Start date must be earlier than end date.');
                    isValid = false;
                    return;
                }
            }
            else{
                if (new Date(testDate) < new Date(otherDate)) {
                    addError($(this));
                    $('.flightDateError').text('* End date must be later than start date.');
                    return;
                }
            }
        }
    });
我认为主要问题是这一部分

 // Validate Date Ranges
            if ($(this).val() != '' && dates.not(this).val != '') {
                if ($(this).hasClass("FromCal")) {
                    if (new Date(testDate) > new Date(otherDate)) {
                        addError($(this));
                        $('.flightDateError').text('* Start date must be earlier than end date.');
                        isValid = false;
                        return;
                    }
                }
                else{
                    if (new Date(testDate) < new Date(otherDate)) {
                        addError($(this));
                        $('.flightDateError').text('* End date must be later than start date.');
                        return;
                    }
                }
            }
testDate是开始日期 otherDate是结束日期

这是两个输入框所在的C

    <div id="campaign_start" style="display: inline-block">
                    <label class="date_range_label">from:</label>  
                    <asp:TextBox ID="FromCalTbx" runat="server" Width="100px" CssClass="FromCal editable float_left required" />
                  </div>
                  <div id="campaign_end" style="display: inline-block">
                    <label class="date_range_label">to:</label>
                    <asp:TextBox ID="ToCalTbx" runat="server" Width="100px" CssClass="float_left optional"/>
</div>

您使用相同的方法测试两个日期,但需要不同的结果。看起来“FromCal”类在这里相当重要;你能展示一些HTML来让它更清楚地说明它是做什么的,以及日期选择器是如何工作的吗?很抱歉回复,我的声誉使我无法发表评论,我想

@James:你应该尝试将你的程序员.SE帐户关联起来,这样你就可以重新获得这个问题的所有权。如果你没有注册程序员,SE,考虑注册。