UPDATE:
My code now is something like this: (works).
$(document).ready(function(){
$("input:checkbox").click(function(){
var group = "input:checkbox[name='"+$(this).attr("name")+"']";
$(group).attr("checked",false);
$(this).attr("checked",true);
});
});
HTML:
<input type="checkbox" name="swimming" class="chb" />
<input type="checkbox" name="swimming" class="chb" />
<input type="checkbox" name="swimming" class="chb" />
I have a questionnaire type form with three checkboxes for each question and I want the user to be able to select only one out of the three.
My HTML is something like this:
Question 1:
<input type="checkbox" name="ballet" />
<input type="checkbox" name="ballet" />
<input type="checkbox" name="ballet" />
Question 2:
<input type="checkbox" name="swimming" />
<input type="checkbox" name="swimming" />
<input type="checkbox" name="swimming" />
But this allows the user to select all checkboxes for a particular question. And I want it to be able to select only one out of the three. Is there a solution to this?
Thanks
Demo here
$(':checkbox').on('change',function(){
var th = $(this), name = th.attr('name');
if(th.is(':checked')){
$(':checkbox[name="' + name + '"]').not(th).prop('checked',false);
}
});
As per the comment, I assume user must be able to select one out of first three and 1 out of second three checkboxes. Because name attributes are different. Here is demo.
$("input:checkbox").change(function(){
var group = ":checkbox[name='"+ $(this).attr("name") + "']";
if($(this).is(':checked')){
$(group).not($(this)).attr("checked",false);
}
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With