确定是否每个无线电组都选择了一个选项

Phi*_*enn 4 jquery

在启用提交按钮之前,我需要确保已经回答了所有无线电组.如果我有:

var radioBtns = $('input').filter(':radio');
Run Code Online (Sandbox Code Playgroud)

它告诉我有多少个单选按钮,但我需要知道是否有任何组尚未选择选项.

Pau*_*aul 9

如果你知道你有多少个团体,你可以做:

if($('input:radio:checked').length < numGroups){
    // At least one group isn't checked
}
Run Code Online (Sandbox Code Playgroud)

否则,您需要先计算组数.我想不出有什么方法可以更好地做到这一点:

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!');
Run Code Online (Sandbox Code Playgroud)


Ali*_*guy 5

这有效:

var all_answered = true;
$(':radio').each(function(){
    if($(':radio[name='+$(this).attr('name')+']:checked').length == 0)
    {
        all_answered = false;
    }
});
alert(all_answered);
Run Code Online (Sandbox Code Playgroud)

工作演示:http://jsfiddle.net/AlienWebguy/8Cu6d/1/