jquery - 如何将errorPlacement用于特定元素?

fre*_*yum 15 jquery jquery-validate errorplacement

我有复选框,文字跟着它,就像;
[复选框]我同意

如果在提交时未单击该复选框,则显示错误信息的当前方式是(我使用errorElement:"div");

[复选框]
此字段是必填字段.
我同意**

我宁愿喜欢;
[复选框]我同意
此字段是必填项

知道怎么做到这一点吗?

我有关的复选框和文本元素的html包装是这样的;
[div] [复选框]我同意[/ div] [div] [/ div]

我尝试了errorPlacment:如下所示希望仅为该元素应用它;

...            
messages: {
    usage_terms: {
        required: "Must agree to Terms of Use.",
    //errorElement: "div"
    errorPlacement: function(error, element) {
        error.appendTo( element.parent("div").next("div") );
        }
    }
}
...
Run Code Online (Sandbox Code Playgroud)


它没用.任何的想法?.

Nic*_*ver 27

errorPlacement 不是在消息下面(作为选项),它是一个全局选项,所以它应该如下所示:

messages: {
  usage_terms: "Must agree to Terms of Use."
}
errorPlacement: function(error, element) {
  if(element.attr("name") == "usage_terms") {
    error.appendTo( element.parent("div").next("div") );
  } else {
    error.insertAfter(element);
  }
}
Run Code Online (Sandbox Code Playgroud)

这里我们只是在确定它的位置时检查元素名称,你可以做另一个检查,例如给出所有类似行为的类,然后做element.hasClass("placeAfter").