jQuery验证 - 错误消息保持重复

时间:2013-02-27 14:02:40

标签: jquery jquery-validate

我尝试使用errorPlacement自定义错误消息,但是当出现错误时,按住正文或Send Message按钮时会继续重复。

下面是我的jQuery代码,这是我的jsfiddle

   $(document).ready(function () {
       $("#myform").validate({
           rules: {
               message: {
                   required: true,
                   minlength: 5,
                   maxlength: 753
               }
           },
           debug: true,
           errorPlacement: function (error, element) {
               error.appendTo('#invalid');
           },
           messages: {
               message: {
                   required: "Enter your text message",
                   minlength: jQuery.format("Enter at least {0} characters"),
               }
           }
       });
   });

3 个答案:

答案 0 :(得分:2)

Use errorLabelContainer instead of errorPlacement如果您希望将错误放在特定容器中而不是每个输入元素旁边。

您的jsFiddle已修改:http://jsfiddle.net/mXm4N/

$(document).ready(function () {
    $("#myform").validate({
        rules: {
            message: {
                required: true,
                minlength: 5,
                maxlength: 753
            }
        },
        errorLabelContainer: '#invalid',
        messages: {
            message: {
                required: "Enter your text message",
                minlength: jQuery.format("Enter at least {0} characters"),
            }
        }
    });
});

<强> HTML

<div id="invalid"></div>
<form>
    ...
</form>

答案 1 :(得分:1)

ID无效的元素必须包含在您的表单中。

如果你使用errorPlacement,插件只在元素的表单中查找,它找不到它,只会插入另一个。

errorPlacement: function (error, element) {
  // element with id=invalid must be within the form being validated,
  // otherwise use errorLabelContainer
  error.appendTo('#invalid');
}

如果您试图单独创建错误列表,而不是将它们放在字段旁边,那么请使用errorLabelContainer。

答案 2 :(得分:0)

看看这个页面:

http://docs.jquery.com/Plugins/Validation

并阅读有关递归和提交处理程序的内容 - 这可能会有所帮助。