我正在尝试验证具有两个字段的表单
string email
和file type
文件(两者中的一个是强制性的)。
我正在使用以下代码验证表单,
$("#addOrganizationMembersForm").validate({
rules : {
csv : {
required : "#emails:empty",
extension: "xls|csv"
},
emails : {
required : "#csv:empty"
}
},
messages : {
csv : {
required : 'Upload a csv or xls file',
extension : 'Only csv files are allowed',
},
emails : {
required : 'Enter one or more comma seperated emails',
}
}
});
此代码验证两个字段(但对我来说,如果两个字段中的一个具有值,即email或csv文件,则表单有效)
请帮助我,这段代码有什么问题
答案 0 :(得分:1)
试试这个,
$("#addOrganizationMembersForm").validate({
rules : {
csv : {
required : function(){
return $("#emails").is(':empty')
},
extension: "xls|csv"
},
emails : {
required : function(){
return $("#csv").is(':empty')
},
}
},
答案 1 :(得分:1)
引用OP的评论:
“感谢rohan回复。我已经尝试了这个,如果我在
console.debug($("#emails").is(':empty'))
语句之前添加return
语句,每次返回true
时都会这样做。同样适用于csv
。“
如果你有两个字段,其中required
规则依赖于另一个是空的,那么会出现时间问题...你满足一个字段但是你可能不得不重新触发另一个字段的验证清除错误。
但是,如果您添加the additional-methods.js
file,则可以使用已经完全符合要求的require_from_group
规则。 (必须使用插件版本1.11.1或更高版本)
$("#addOrganizationMembersForm").validate({
rules: {
csv: {
require_from_group: [1, '.mygroup'],
extension: "xls|csv"
},
emails: {
require_from_group: [1, '.mygroup']
}
},
messages: {
csv: {
require_from_group: 'Upload a csv or xls file',
extension: 'Only csv files are allowed',
},
emails: {
require_from_group: 'Enter one or more comma seperated emails',
}
}
});