3 回答

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
這是Nathan的出色解決方案。非常感謝。
這是一種使上面的代碼起作用的方法,以防有人像我那樣在集成時(shí)遇到麻煩:
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貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
不錯(cuò)的解決方案。但是,我遇到了其他必需規(guī)則不起作用的問(wèn)題。對(duì)表單執(zhí)行.valid()對(duì)我來(lái)說(shuō)解決了這個(gè)問(wèn)題。
if(!$(element).data('being_validated')) {
var fields = $(selector, element.form);
fields.data('being_validated', true);
$(element.form).valid();
fields.data('being_validated', false);
}

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
謝謝肖恩。這解決了我的代碼忽略其他規(guī)則的問(wèn)題。
我還做了一些更改,以使“請(qǐng)至少填寫(xiě)一個(gè)字段..”消息顯示在單獨(dú)的div中,而不是在每個(gè)字段之后顯示。
放入表單驗(yàn)證腳本
showErrors: function(errorMap, errorList){
$("#form_error").html("Please fill out at least 1 field before submitting.");
this.defaultShowErrors();
},
將此添加到頁(yè)面中的某處
<div class="error" id="form_error"></div>
添加到require_from_group方法addMethod函數(shù)
if(validOrNot){
$("#form_error").hide();
}else{
$("#form_error").show();
}
......
}, jQuery.format(" (!)"));
- 3 回答
- 0 關(guān)注
- 742 瀏覽
添加回答
舉報(bào)