2011-07-27 28 views
0

我有几个问题的民意调查。下面是HTML代码jquery验证

<form id="pool"> 
<div class="questions> 
    <input type="radio" name="sex">Male 
    <input type="radio" name="sex">Female 
</div> 

<div class="questions> 
    <input type="radio" name="hair">Brown 
    <input type="radio" name="hair">Blonde 
</div> 

.... a lot of qestions div's 
</form> 

怎么办这样的形式提交后,以确保有在所有div`s选中的单选按钮?

+0

可能重复[确定是否每一个单选按钮组已选择一个选项](http://stackoverflow.com/questions/6796870/determine-if-every-radio-group-has-had-an-option-selected) – Paulpro

回答

1

如果你知道你有多少组有你可以做:

if($('#pool input:radio:checked').length < numGroups){ 
    // At least one group isn't checked 
} 

否则,你需要先计算组的数量。我想不出任何办法做到这一点更好,然后:

var rgroups = []; 
$('#pool 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($('#pool input:radio:checked').length < rgroups) 
    alert('You must fill in all the fields.'); 
else 
    alert('Thanks!'); 
0

设置默认值或创建提交按钮,并检查是否检查了一些值。如果没有无线电按钮被选中,显示错误消息,并且不提交表单(返回false)

0

未经测试的代码,但是这是想法:

if($('#pool').children().length == $('pool 
div').find('#pool input:radio:selected').length) { 
//do stuff 
}