初めて HTML フォームで jQuery Validation プラグインを使用しています。私はこれに普通の古い JavaScript を使用することに慣れていますが、このプラグインが大好きです! とにかく、私はいくつかの条件付き検証をしようとして立ち往生しています。
シナリオ: フォームに 2 つの部分からなる質問があります。最初の部分は、はい/いいえのドロップダウンです (必須)。2 番目の部分はチェックボックスのグループです。前のドロップダウンで「はい」を選択した場合は、少なくとも 1 つのチェック ボックスをオンにする必要があります。
<div>
<p><span class="bold large-font">8.</span> Some question to answer Yes or No to...</p>
<div class="margin-left-fifty">
<select id="Q8" class="Q8" name="Q8">
<option value="" selected></option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
</div>
<div class="margin-left-fifty">
<p><span class="underline italic">If Yes,</span> indicate which areas...</p>
</div>
<div class="margin-left-eighty">
<input id="Q8yesA" class="Q8yes" name="Q8yesA" type="checkbox" value="Yes" />
<label for="Q8yesA"><span class="small-font">a.</span> Option A</label>
<br />
<input id="Q8yesB" class="Q8yes" name="Q8yesB" type="checkbox" value="Yes" />
<label for="Q8yesB"><span class="small-font">b.</span> Option B</label>
<br />
<input id="Q8yesC" class="Q8yes" name="Q8yesC" type="checkbox" value="Yes" />
<label for="Q8yesC"><span class="small-font">c.</span> Option C</label>
<br />
<input id="Q8yesD" class="Q8yes" name="Q8yesD" type="checkbox" value="Yes" />
<label for="Q8yesD"><span class="small-font">d.</span> Other</label>
<input name="Q8yesDlist" type="text" maxlength="255" size="50" value="" placeholder="Please list..." />
</div>
はかなり大規模な調査の一部であるため、照合を簡単かつ迅速にするために、配列を使用するのではなく、各回答を個別にしました。
チェックボックスを検証するために使用しているコードは、ここからのものだと思います: 少なくとも1つのチェックボックスの検証
だから今、私の関数は次のようになります。
$(function(){
$.validator.addMethod('Q8yes', function (value) {
return $('.Q8yes:checked').size() > 0; }, 'Please check at least one box for Question 8.');
var checkboxes8 = $('.Q8yes');
var checkbox_names8 = $.map(checkboxes8, function(e,i) { return $(e).attr("name")}).join(" ");
$('#survey').validate({
groups: {
checks8: checkbox_names8
},
rules: {
Q8: "required",
},
messages: {
Q8: "Please answer Question 8.",
},
errorContainer: $('#errorContainer'),
errorLabelContainer: $('#errorContainer ul'),
wrapper: 'li'
});
});
addMethod を If ステートメントでラップしようとしてきましたが、よくわかりませんでした。それが正しい考えかどうかさえ、私にはわかりません。
あなたの助けは大歓迎です!ありがとう!