jQuery,检查是否选中了所有单选按钮组

时间:2014-01-03 08:20:32

标签: javascript jquery radio-button

我有几个radiobuttongroup,我需要在检查脚本时运行它。

我使用以下脚本检查其中一个是否已选中,如果没有,则将其着色。

如何制作代码,以便在选中所有radiobuttongroup时,运行脚本。

检查radiobuttongroup是否被检查的代码:

$('.aQuestion').each(function(){
  if($(this).find('input[type="radio"]:checked').length > 0)
    {
       alert("checked");
    }
  else
    {
       alert("not checked");
    }    
});

radiobuttongroups(大约有90个):

<div class='aQuestion' id='div1'>
    <STRONG>1. </STRONG>
    <STRONG>Question</STRONG></br>
    <INPUT TYPE='radio' NAME='grp1' VALUE='0'>answer 1</br>
    <INPUT TYPE='radio' NAME='grp1' VALUE='1'>answer 2</br>
    <INPUT TYPE='radio' NAME='grp1' VALUE='2'>answer 3</br>
    <INPUT TYPE='radio' NAME='grp1' VALUE='3'>answer 4</br>
    <INPUT TYPE='radio' NAME='grp1' VALUE='4'>answer 5
</div>

<div class='aQuestion' id='div2'>
    <STRONG>2. </STRONG>
    <STRONG>Question</STRONG></br>
    <INPUT TYPE='radio' NAME='grp2' VALUE='0'>answer 1</br>
    <INPUT TYPE='radio' NAME='grp2' VALUE='1'>answer 2</br>
    <INPUT TYPE='radio' NAME='grp2' VALUE='2'>answer 3</br>
    <INPUT TYPE='radio' NAME='grp2' VALUE='3'>answer 4</br>
    <INPUT TYPE='radio' NAME='grp2' VALUE='4'>answer 5
</div>

提前致谢:D

3 个答案:

答案 0 :(得分:4)

假设每个问题只有一个单选按钮组,您不需要迭代这些问题,以便找出所有选中的问题:

var $questions = $(".aQuestion");
if($questions.find("input:radio:checked").length === $questions.length) {
    // All Checked
}

jsFiddle演示了上述内容。

答案 1 :(得分:0)

试试这个:

$(document).on('ready change','.aQuestion',function(){
  if($(this).find('input[type="radio"]:checked').length > 0)
    {
       alert("checked");
    }
  else
    {
       alert("not checked");
    }    
});

答案 2 :(得分:0)

最终代码:

jQuery('#submit').click(function(event)
    {
        event.preventDefault();

        $('.aQuestion').each(function()
        {
            if($(this).find('input[type="radio"]:checked').length > 0)
            {
                $(this).addClass( "madeChoice" ); // Run css that hides the group
            }
            else
            {   
                $(this).addClass( "didntMakeChoice" ); // Run css that highlight the group.                
            }
        });

        var $questions = $(".aQuestion");

        if($questions.find("input:radio:checked").length === $questions.length) 
        {
            alert("all checked"); // Send result to DB.
        }
        else 
        {
            alert("Not Checked"); // Do nothing.
        }
    });