如何避免为jquery组插入多条消息

时间:2015-01-08 13:54:45

标签: javascript jquery jquery-validate

我使用jQuery Validation插件,我开始将我的一些字段组合在一起:

我还将字段添加到规则部分,以便验证它们:

groups: {
           fullName: "myFirstName myLastName"
       },
       rules: {
           dobmm: {
               required: true
           },
           dobdd: {
               required: true
           }
           dobyy: {
               required: true
           }
       },
       messages: {
           dobmm: "Please enter a valid Date of Birth",
           dobdd: "Please enter a valid Date of Birth",
           dobyy: "Please enter a valid Date of Birth"
       }
   errorPlacement: function(error, element) {
   if (element.attr("id") == "dobmm" || element.attr("id") == "dobyy" || element.attr("id") == "dobyy") {
       error.insertAfter("#dobyy");

   } else {
       error.insertAfter(element);
   }

   });

我收到消息三次而不是打印一次。当我尝试提交表单而不填写任何字段或者没有输入任何一个字段并提交时,只获得一条消息

1 个答案:

答案 0 :(得分:0)

您没有显示任何HTML,因此我无法在演示中为您复制任何内容。

但是,您有一堆语法错误会破坏此插件。请在下面的代码中注明我的评论......

$('#yourform').validate({ // <- MISSING LINE
    groups: {
        fullName: "myFirstName myLastName"
    },
    rules: {
        dobmm: {
            required: true
        },
        dobdd: {
            required: true
        },     // <- MISSING COMMA
        dobyy: {
            required: true
        }
    },
    messages: {
        dobmm: "Please enter a valid Date of Birth",
        dobdd: "Please enter a valid Date of Birth",
        dobyy: "Please enter a valid Date of Birth"
    },         // <- MISSING COMMA
    errorPlacement: function(error, element) {
        if (element.attr("id") == "dobmm" || element.attr("id") == "dobyy" || element.attr("id") == "dobyy") {
            error.insertAfter("#dobyy");
        } else {
            error.insertAfter(element);
        }
    }         // <- MISSING BRACE
});

此外,您已将myFirstNamemyLastName定义为您的分组。但是,由于您没有在rules中的/下面列出这些字段名称,我不确定它应该如何工作。 groups选项旨在将错误消息组合在一起。如果您没有为myFirstNamemyLastName声明任何规则,则根本不会有任何消息。