jquery验证属性以检查多个字段

时间:2015-03-06 01:05:13

标签: jquery jquery-validate

我想知道是否可以进行这种jquery验证,可能需要单独的方法。

我分别检查三个字段的电话号码,区域,前缀和亚麻。

因此,如果没有输入任何字段,则应绕过验证。

我现在所做的是检查每个值的最小值和最大值,例如,如果用户只在区域文本框中正确输入值,然后将其他两个文本框留空,则自动绕过验证条件符合"符合最小值或最大值或空白。

我想要实现的是,如果任何字段具有值,则所有三个字段都应具有值,如果它们都没有值,则验证关闭。

这是我到目前为止所做的:

    $(this).validate({
        rules: {

            QUEST7_area: {
                minlength: 3,
                maxlength: 3
            },
            QUEST7_prefix: {
                minlength: 3,
                maxlength: 3
            },
            QUEST7_linenum: {
                minlength: 4,
                maxlength: 4
            }
        },
        errorPlacement: function (error, element) {
            //  invalid handler will place the error
            var errorRect = $('div.errorrect');
            var message;

            if ((element[0].id == "QUEST7_area") || (element[0].id == "QUEST7_prefix") || (element[0].id == "QUEST7_linenum")) {
                        var afterElement = $('#QUEST7_linenum');
                        error.insertAfter(afterElement);
                        phoneErrorDisplayed = true;
            } 

            if (isNullOrWhiteSpace(errorRect.text())) {
                errorRect.text(message);
            }
        },
        messages: {

            QUEST7_area: $('#QUEST7').data('errormsg'),
            QUEST7_prefix: $('#QUEST7').data('errormsg'),
            QUEST7_linenum: $('#QUEST7').data('errormsg'),
        }

    });

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

  

因此,如果没有输入任何字段,则应绕过验证。 ...我想要实现的是,如果任何字段都有值,那么所有三个字段都应该有值,如果它们都没有值,则验证关闭。

the additional-methods.js file内,有一个名为skip_or_fill_minimum的规则/方法,它完全符合您的描述。

该规则允许您从指定的字段组中指定最小数量的字段required ...如果没有填写,则跳过所有字段。

此方法有两个参数......

1。必须从组中填写的最小字段数。

在您的情况下,它是3,因为我们希望所有三个已完成(如果有的话)。

2。定义组的选择器

在您的情况下,input[name^='QUEST7']会自动选择input name开头的所有"QUEST7"元素。当然,您可以指定一个特殊的类或设计任何合适的选择器,只捕获这三个字段。

$(this).validate({
    rules: {
        QUEST7_area: {
            minlength: 3,
            maxlength: 3,
            skip_or_fill_minimum: [3,"input[name^='QUEST7']"]
        },
        QUEST7_prefix: {
            minlength: 3,
            maxlength: 3,
            skip_or_fill_minimum: [3,"input[name^='QUEST7']"]
        },
        QUEST7_linenum: {
            minlength: 4,
            maxlength: 4,
            skip_or_fill_minimum: [3,"input[name^='QUEST7']"]
        }
    },
    ....

DEMO:http://jsfiddle.net/ktn6d7dd/

或者,您可以使用groupserrorPlacement选项合并并发出一条错误消息。