groups
使用的当前example表示应定义errorPlacement
,其中字段名称是硬编码的:
$("#myform").validate({
groups: {
username: "fname lname"
},
errorPlacement: function(error, element) {
if (element.attr("name") == "fname"
|| element.attr("name") == "lname" )
error.insertAfter("#lastname");
else
error.insertAfter(element);
},
debug:true
})
有没有办法摆脱带有字段名称的errorPlacement
?错误消息应始终位于组中最后一个元素之后。
答案 0 :(得分:4)
我认为你将不得不使用errorPlacement
,但是每次都可以通过一些技巧将错误集中在群组之间:
$("#test-form").validate({
groups: {
username: "fname lname",
range: "min max"
},
errorPlacement: function ($error, $element) {
var elementName = $element.attr("name"),
lastInGroup = $.map(this.groups, function(fields, name) {
var fieldsArr;
if (fields.indexOf(elementName) >= 0) {
fieldsArr = fields.split(" ");
return fieldsArr[fieldsArr.length - 1];
} else {
return null;
}
})[0];
if (lastInGroup) {
$error.insertAfter($("input[name='" + lastInGroup + "']"));
} else {
$error.insertAfter($element);
}
}
});
基本上,访问您定义的groups
对象并找到每个组中的最后一个字段。在该字段后附加错误。