jQuery - 检查是否选择了多个单选按钮组,然后返回未选择的名称

Red*_*kDK 4 javascript jquery if-statement input radio-button

我的调查中有超过 90 个问题。每个问题有 5 个选择。问题是根据数据库信息构建的。

我需要检查是否所有问题都已得到解答,如果其中一个问题没有得到解答,那么应该对此发出警报。

它们都分为单选按钮组,我想使用 jQuery 来检查。

if 语句不起作用,唯一收到警报的想法是:“未检查!”

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

(上面还有8个问题)

<script>

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

        for(i=1;i<=10;i++)
        {               
            var currentGroup = "grp" + i;

            if($("input[name=currentGroup]:checked").val())
            {
                alert(currentGroup + ' is checked!');                
            }
            else 
            {
                alert(currentGroup + ' is NOT checked!');
            }    
        }
    });

</script>
Run Code Online (Sandbox Code Playgroud)

提前致谢。如果有人知道如何让用户浏览器视图跳转到未回答的问题,那么我也想听听;)

Raj*_*amy 5

您必须aQuestion使用遍历带有类的每个 div .each(),并且需要使用 来检查元素内部是否检查了任何单选按钮.find()

尝试,

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

正如 mplungjan 建议的那样,您也可以使用,

$('.aQuestion').each(function(){ 
  $(this).toggleClass("didntmakechoice",$(this).find('input[type="radio"]:checked').length == 0);
}); 
Run Code Online (Sandbox Code Playgroud)