jquery验证无法处理隐藏字段

时间:2015-10-22 10:51:38

标签: javascript jquery jquery-validate

最初使用jQuery验证器的某些字段显示无,因此当用户单击下一个按钮时,错误消息显示您错过了1个字段。请在提交之前填写这完全符合我的预期。因为我给了ignore:".chk_Field",。但是当用户单击是单选按钮时,用户可以看到更多字段。没有填写任何字段如果用户仍然单击下一个按钮仍然应该说您错过了5个字段。请在提交前填写,但目前正在说您错过了1个字段。请在提交之前填写,这行代码ignore:".chk_Field",

不会发生这种情况

这是我的jquery代码

function apply_validation() {
    $(".educationForm").validate({
        ignore:".chk_Field",
        onkeyup: false,
        showErrors: function (errorMap, errorList) {

            var errors = this.numberOfInvalids();

            if (errors) {
                var message = 'You have missed ' + errors + ' fields. Please fill before submitted.';
                $errorMessageDiv.html(message);
                $errorMessageDiv.show();
            } else {
                $errorMessageDiv.hide();
            }
            this.defaultShowErrors();
        },
        errorPlacement: function () {
            return false;
        },
        highlight: function (element) {

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

            } else {
                $(element).addClass('errRed');
                $(".chk_field_hlt").addClass('errRed_chkb');
                $('#imageUploadForm').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');
                $(".chk_field_hlt").removeClass('errRed_chkb');
            }
            $(element).prevAll('label').find('span.required-star').addClass('text-error-black').removeClass('text-error-red');

        }
    });
}

以下是fiddle link

提前致谢

1 个答案:

答案 0 :(得分:1)

尝试使用以下代码:

$("#expy").find(".chk_Field").removeClass("chk_Field");

下面:

 $(".wrk_clp").click(function () {
        if ($('input[name=rad_emp]:checked').val() == "yes") {
            $expDiv.show();

            $("#expy").find(".chk_Field").removeClass("chk_Field");
}

我刚测试过它似乎有效。