我正在尝试使用jQuery Validate插件对两个字段进行分组,并为该组提供一条错误消息。
我有两个字段(已分组),如果两个字段都没有填写,我想显示一条说明You must either fill out 'U.S. taxpayer identification number' or 'Foreign tax identifying number'
的错误消息。现在,表单正在创建SIX单独的错误消息,只是简单地说明Please fill at least 1 of these fields.
我在下面提供了我的代码:
html :
<input class="tin" name="w8_us_tin" type="text" style="width: 50.8%; height: 1.8%; top: 42.1%; left: 10.3%;">
<input class="tin" name="w8_foreign_tin" type="text" style="width: 30%; height: 1.8%; top: 42.1%; left: 64.2%;">
javascript :
$(function () {
$("form.signup_3").validate({
errorElement: "li",
errorPlacement: function(error, element) {
error.appendTo( $("ul.error") );
},
groups: {
tin: "w8_us_tin w8_foreign_tin"
},
rules: {
w8_us_tin:{
require_from_group: [1, '.tin']
},
w8_foreign_tin:{
require_from_group: [1, '.tin']
}
},
messages: {
tin: {
require_from_group: "You must either fill out 'U.S. taxpayer identification number' or 'Foreign tax identifying number'"
}
}
});
});
答案 0 :(得分:2)
&#34;一个组由一个任意的组名作为键,一个空格分隔的元素名列表作为值。使用
errorPlacement
控制群组邮件的放置位置。&#34;
它的唯一目的是从多个字段中获取错误消息并将其转换为一条消息。对于在不同时间触发的具有不同规则的字段,可能会混乱。但是,如果任何分组字段同时获得相同的消息,例如由require_from_group
方法触发时,它就是完美的。
groups: {
someArbitraryName: "w8_us_tin w8_foreign_tin"
}
DEMO:http://jsfiddle.net/7LsHJ/
引用OP:
&#34;现在,表单正在创建SIX单独的错误消息,只是简单地说明
Please fill at least 1 of these fields
。&#34;
如果您只有两个字段,我不知道如何获得六条消息,但我确切知道您为什么会看到通用的Please fill at least x
消息。
tin
内不能有messages
项,因为它不是字段name
。
messages: {
tin: { // <- this is not a field name
require_from_group: "You must either fill out 'U.S. taxpayer identification number' or 'Foreign tax identifying number'"
}
}
messages
的分配方式与rules
类似。 messages
选项中的每个项目始终分配给字段name
。
一个字段上所有规则的消息:
messages: {
fieldName: "custom message same for all rules on this field"
}
或者字段上每个规则的自定义消息:
messages: {
fieldName: {
required: "custom message for required rule",
digits: "custom message for digits rule"
}
}
适用于您的案件:
messages: {
w8_us_tin: {
require_from_group: "You must either fill out 'U.S. taxpayer identification number' or 'Foreign tax identifying number'"
},
w8_foreign_tin: {
require_from_group: "You must either fill out 'U.S. taxpayer identification number' or 'Foreign tax identifying number'"
}
}
更新了DEMO:http://jsfiddle.net/7LsHJ/1/