3 回答
TA贡献1834条经验 获得超8个赞
这是Nathan的出色解决方案。非常感谢。
这是一种使上面的代码起作用的方法,以防有人像我那样在集成时遇到麻烦:
Additional-methods.js文件中的代码:
jQuery.validator.addMethod("require_from_group", function(value, element, options) {
...// Nathan's code without any changes
}, jQuery.format("Please fill out at least {0} of these fields."));
// "filone" is the class we will use for the input elements at this example
jQuery.validator.addClassRules("fillone", {
require_from_group: [1,".fillone"]
});
html文件中的代码:
<input id="field1" class="fillone" type="text" value="" name="field1" />
<input id="field2" class="fillone" type="text" value="" name="field2" />
<input id="field3" class="fillone" type="text" value="" name="field3" />
<input id="field4" class="fillone" type="text" value="" name="field4" />
不要忘了包含Additional-methods.js文件!
TA贡献1951条经验 获得超3个赞
不错的解决方案。但是,我遇到了其他必需规则不起作用的问题。对表单执行.valid()对我来说解决了这个问题。
if(!$(element).data('being_validated')) {
var fields = $(selector, element.form);
fields.data('being_validated', true);
$(element.form).valid();
fields.data('being_validated', false);
}
TA贡献2003条经验 获得超2个赞
谢谢肖恩。这解决了我的代码忽略其他规则的问题。
我还做了一些更改,以使“请至少填写一个字段..”消息显示在单独的div中,而不是在每个字段之后显示。
放入表单验证脚本
showErrors: function(errorMap, errorList){
$("#form_error").html("Please fill out at least 1 field before submitting.");
this.defaultShowErrors();
},
将此添加到页面中的某处
<div class="error" id="form_error"></div>
添加到require_from_group方法addMethod函数
if(validOrNot){
$("#form_error").hide();
}else{
$("#form_error").show();
}
......
}, jQuery.format(" (!)"));
- 3 回答
- 0 关注
- 698 浏览
添加回答
举报