jQuery验证组验证
问题描述:
我正在使用jQuery验证插件。我有3个字段,并且只有在 中的一个不为空时才需要验证它们,否则根本不验证。jQuery验证组验证
<input type="text" data-validate="{validate:{required:true,
messages:{required:'Flickr set is required'}}}" id="flickr_set" name="flickr_set">
<input type="text" data-validate="{validate:{required:true,
messages:{required:'Flickr ID is required'}}}" id="flickr_id" name="flickr_id">
<input type="text" data-validate="{validate:{required:true,
positiveNumber:true, messages:{required:'Photos count is required',
positiveNumber:'Positive number is required'}}}" id="flickr_photos-count" name="flickr_photos-count">
答
您需要使用验证插件的dependency-callback方法。
什么,这将让你做的是:
使所需的元素,根据给定的回调的结果。
然后,您可以放置在3个字段,上面写着基于从回调函数返回本场将只需要required
验证规则;然后你可以把领域的规则说需要这个领域,如果任何字段不为空return true
,或者若所有字段为空并不需要这个领域return false
因此,如果任何字段都被填充了在他们都成为必需的,如果他们都留空,他们都不需要。
rules: {
flickr_set: {
required: function(element) {
return ($("#flickr_set").is(':empty') && $("#flickr_id").is(':empty') && $("#flickr_photos-count").is(':empty') ? false : true);
}
},
flickr_id: {
required: function(element) {
return ($("#flickr_set").is(':empty') && $("#flickr_id").is(':empty') && $("#flickr_photos-count").is(':empty') ? false : true);
}
},
flickr_photos-count: {
required: function(element) {
return ($("#flickr_set").is(':empty') && $("#flickr_id").is(':empty') && $("#flickr_photos-count").is(':empty') ? false : true);
}
}
}
答
就达一
$("form").validate();
,并给予输入字段所需的类。
如果你想拥有你可以在上面的JavaScript更改为自定义消息:
$("form").validate({
messages : {
flickr_set : "Flickr set is required",
flickr_id : "Flickr ID",
flickr_photos-count : "Photos count is required"
}
});