jQuery验证忽略隐藏字段,同时仍然验证折叠面板隐藏的字段

时间:2015-10-17 04:13:59

标签: jquery jquery-validate

首先抱歉长标题当我点击下一个按钮时,当用户折叠面板时,使用当前代码处理jQuery clone +验证它完全验证但是在面板中我有一个隐藏的字段不应该用户单击下一步按钮时验证。我使用了ignore: []代码,因此这适用于崩溃字段,但不适用于隐藏字段。当用户处于折叠模式和隐藏字段时,我希望两者都能正常工作。

这是jquery代码

  $(".educationForm").validate({
        ignore:[],
         onkeyup: false,
            showErrors: function (errorMap, errorList) {
            var errors = this.numberOfInvalids();

            if (errors) {
                var message = errors === 0 ? 'You missed 1 field. It has been highlighted' : 'You have missed ' + errors + ' fields. Please fill before submitted.';
                $("#error_message").html(message);
                $(".error_msge").show();
            } else {
                $(".error_msge").hide();
            }
            this.defaultShowErrors();
        },
        errorPlacement: function () {
            return false;
        },
        highlight: function (element) {

            if ($(element).is(':radio'))  {

            } else {
                $(element).addClass('errRed');
            }
            $(element).prevAll('label').find('span.required-star').addClass('text-error-red').removeClass('text-error-black');            
        },
        unhighlight: function (element) {

            if ($(element).is(':radio')) {
            } else {
                $(element).removeClass('errRed');
            }
            $(element).prevAll('label').find('span.required-star').addClass('text-error-black').removeClass('text-error-red');

        }
    });
   add_validation_for_forms();
}

以下是fiddle link

1 个答案:

答案 0 :(得分:1)

如果要验证“隐藏”字段(由折叠面板隐藏)但不验证其他隐藏字段,则只需将ignore选项设置为更具体的字段。

将一个名为.ignore的新类添加到隐藏字段中。然后将ignore选项设置为".ignore"。当然,您可以使用任何您想要的类或jQuery选择器。

ignore: ".ignore"

现在,在忽略隐藏字段时,折叠的面板仍会收到验证。

DEMO:http://jsfiddle.net/yg97yg19/22/

See documentation

  

验证时要忽略的元素,只需将其过滤掉即可。 ...

     

示例:验证时忽略“ignore”类的所有元素。

$("#myform").validate({
    ignore: ".ignore"
});