2013-02-27 51 views
0

我尝试使用errorPlacement自定义错误消息,但当出现错误时,它会继续重复,当我按body或Send Message按钮。jQuery验证 - 错误消息保持重复

下面是我的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"), 
       } 
      } 
     }); 
    }); 
+0

看到这里http://stackoverflow.com/questions/2931209/jquery-errorplacement – PSR 2013-02-27 14:13:47

回答

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

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

如果您像下面那样使用errorPlacement,则插件仅在元素的表单中查找,但无法找到它并只插入另一个。

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

如果你想acheive自身错误的列表,而不是让他们放在旁边的字段,然后使用errorLabelContainer。