私が達成しようとしていることを簡単に概説するために、JS フィドルを作成しました。ここで表示できます: http://jsfiddle.net/BNjby/1/
ご覧のとおり、「役割」には 5 つの異なるオプションがあります。それらの値は常に同じままです。基本的に、ロールのTraineeが選択されている場合、他のロールの選択が自動的に解除される(または検証エラーメッセージが表示される)ように、jsと検証を追加する必要があります。同様に、他の役割のいずれかが選択されている場合、研修生は選択解除されます。
私の現在のJqueryは次のようになります。
$(document).ready(function(){
$("#registerForm").validate({
rules: {
'roles[]':{
required:true,
profile_checkboxes: true
}
},
});
});
$.validator.addMethod("profile_checkboxes", function (value, element) {
if($(element).is(':checked') && value == 5){
$(element).siblings(':checkbox').attr('checked',false);
return true;
} else if ($(element).is(':checked') && value != 5){
if($(element).siblings().val() == 5){
console.log($(this))
}
}
}, "");
そしてhtml:
<h1>Form Validation Example</h1>
<form id='registerForm' name='registerForm' method='post' action='' >
<div class="control-group">
<label for="role">Role</label>
<div class="controls" id="role_names">
<label class="checkbox"><input type="checkbox" name="roles[]" value="5" /> Trainee</label>
<label class="checkbox"><input checked="checked" type="checkbox" name="roles[]" value="4" /> Supervisor</label>
<label class="checkbox"><input type="checkbox" name="roles[]" value="6" /> Faculty</label>
<label class="checkbox"><input type="checkbox" name="roles[]" value="7" /> Coordinator</label>
<label class="checkbox"><input type="checkbox" name="roles[]" value="3" /> Manager</label> </div>
</div>
<button class="pull-right btn-success btn" type="submit"><i class="icon-check"></i>Save Changes</button>
</form>
これに数週間行き詰まっていたので、少し助けを求める時が来たと思いました。どうもありがとう:)