I need to make sure that all the radio groups have been answered before I enable the submit button. If I have:
var radioBtns = $('input').filter(':radio');
It tells me how many radio buttons I've got, but I need to know if there are any groups that haven't had an option selected yet.
If you know how many groups you have you can just do:
if($('input:radio:checked').length < numGroups){
// At least one group isn't checked
}
Otherwise you need to count the number of groups first. I can't think of any way to do this better then:
var rgroups = [];
$('input:radio').each(function(index, el){
var i;
for(i = 0; i < rgroups.length; i++)
if(rgroups[i] == $(el).attr('name'))
return true;
rgroups.push($(el).attr('name'));
}
);
rgroups = rgroups.length;
if($('input:radio:checked').length < rgroups)
alert('You must fill in all the fields.');
else
alert('Thanks!');
This works:
var all_answered = true;
$(':radio').each(function(){
if($(':radio[name='+$(this).attr('name')+']:checked').length == 0)
{
all_answered = false;
}
});
alert(all_answered);
Working demo: http://jsfiddle.net/AlienWebguy/8Cu6d/1/
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