0
親愛的Javascript專業的,jQuery驗證字段名稱包含括號的組
我有一個HTML表單,其中包含兩組複選框。其中一個組包含複選框,其中應檢查通過jQuery驗證。另一組不是強制選擇。
First group (at least one checkbox should be selected):
<input type="checkbox" name="appSourceFirstoption[1]" value="Answer 1" id="appSourceFirstoption" />
<input type="checkbox" name="appSourceSecondoption[1]" value="Answer 2" id="appSourceSecondoption" />
<input type="checkbox" name="appSourceThirdoption[1]" value="Answer 3" id="appSourceThirdoption" />
Second group (these checkboxes are voluntary to select):
<input type="checkbox" name="appSourceVoluntaryFirst[1]" value="Answer 1" id="appSourceVoluntaryFirst" />
<input type="checkbox" name="appSourceVoluntarySecond[1]" value="Answer 2" id="appSourceVoluntarySecond" />
<input type="checkbox" name="appSourceVoluntaryThird[1]" value="Answer 3" id="appSourceVoluntaryThird" />
複選框的名稱包含數組符號,例如, checkboxName [1](「1」表示填寫表單的人員)。
現在這個完美的作品:
$.validator.addMethod('checkbox', function(value) {
return $('input[type=checkbox]:checked').size() > 0;
}, 'Please select at least one.');
,但它適用於所有的複選框(因此,即使一個複選框,從第二志願組的驗證可以通過)的。
如果我嘗試將強制複選框分組,它不起作用。我想這可能是由於他們的名字包含[],如上所述。
// adding the group
$.validator.addMethod("checkbox_1", function(value, element) {
return $('.checkbox_1:checked').length > 0;
}, 'Please select at least one.');
$('#step').validate({
// grouping the checkboxes together
groups: {
checkbox_1: "appSourceFirstoption[1] appSourceSecondoption[1] appSourceThirdoption[1]"
},
// applying the group rules to just one of the checkbox
"appSourceFirstoption[1]" : { checkbox_1: true },
}
你們有什麼想法我怎麼能解決這個問題?
你能不能請添加你的html代碼片段 –
根據請求添加了HTML。 – BigRooster
由於複選框已經是組的一部分,因此給它們所有'name'屬性,其中大部分完全沒有實際意義。你甚至不需要自定義方法:https://jsfiddle.net/ffk1ubnz/ – Sparky