如何验证从5个单选按钮组中选择至少3个单选按钮

时间:2013-02-01 18:59:00

标签: jquery html validation radio-button

我想验证在一个form.kindly帮助中从五个单选按钮组中选择了至少三个单选按钮。

               你的出勤率                                            
        

    <tr>
    <th > Your grades  <font size="4" > </font></th>
    <td>  <input type="radio" name ="v2" value = "4"    onclick="updateTotal();" /></td>
    <td>  <input type="radio" name ="v2" value = "3"    onclick="updateTotal();" /></td>
    <td>  <input type="radio" name ="v2" value = "2"    onclick="updateTotal();" /></td>
    <td>  <input type="radio" name ="v2" value = "1"    onclick="updateTotal();" /></td>    
    </tr>

    <tr>
    <th >Your self-control <font size="4" > </font></th>
    <td>  <input type="radio" name ="v3" value = "4"    onclick="updateTotal();" /></td>
    <td>  <input type="radio" name ="v3" value = "3"    onclick="updateTotal();" /></td>
    <td>  <input type="radio" name ="v3" value = "2"    onclick="updateTotal();" /></td>
    <td>  <input type="radio" name ="v3" value = "1"    onclick="updateTotal();" /></td>    
    </tr>

        你的自我                                            
                 控制                                            
        

FD

4 个答案:

答案 0 :(得分:1)

if ($('input[type=radio]:checked').length >= 3) {
    //what to do if 3 or more are selected
}

基本上,它执行以下操作::checked选择器查找已检查的任何无线电输入(您可能只需要选择特定div中的输入等,以避免拉入页面上的其他单选按钮)。默认情况下,jQuery在选择器中构建匹配元素的集合,然后返回它。由于这只是一个标准数组,因此可以通过获取数组的length属性来计算匹配的元素数。如果有3个或更多选中的单选按钮,则数组的长度至少为3,而if语句将评估为true

答案 1 :(得分:0)

var minThreeChecked = $('input[type="radio"]').filter(':checked').length >= 3;

您可以组合这些选择器,但这种方式更有效。

答案 2 :(得分:0)

您可以使用

$('input[type=radio]:checked').length >= 3

如果您需要更准确地了解这些群组,请使用

$('input[name^=v][type=radio]:checked').length >= 3

答案 3 :(得分:0)

我认为您正在寻找:http://jsfiddle.net/2dfRd/

$(':radio').change(function (e) {
  var rad = $('[type="radio"]:checked').length;
  if (rad >= 3) {
    $(':radio').not(':checked').prop('disabled', true);
    alert('3 radios selected.');
  }
});

如果您检查了3个无线电,那么所有其他无线电将被禁用。