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

Posted

技术标签:

【中文标题】jQuery - 检查是不是选择了多个单选按钮组,然后返回未选择的人的名称【英文标题】:jQuery - Check if multiple radio button groups are selected, then return name of those who aren'tjQuery - 检查是否选择了多个单选按钮组,然后返回未选择的人的名称 【发布时间】:2014-01-19 05:56:31 【问题描述】:

我在一项调查中有 +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>

(上面还有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>

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

【问题讨论】:

【参考方案1】:

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

试试,

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

正如mplungjan建议你也可以使用,

$('.aQuestion').each(function() 
  $(this).toggleClass("didntmakechoice",$(this).find('input[type="radio"]:checked').length == 0);
); 

【讨论】:

你知道如何在未选中的 div 上使用 jQuery 吗? @user3033005 是的.. 显然 else 部分实际上是指向没有选中单选按钮的 div。对吧。? 谢谢。您将如何定位特定的 div? $( someLinkToTheDiv ).addClass( "didntMakeChoice" ); @user3033005 在其他部分只写,$(this).addClass('didntmakechoice'); 不简单。? :)

以上是关于jQuery - 检查是不是选择了多个单选按钮组,然后返回未选择的人的名称的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 单选组验证和启用选项,如果某些单选检查(jsfiddle 提供)

jQuery mobile 中的多个单选按钮控件组

选择多个单选按钮(通过 jquery、javascript?)

选择组中的下一个单选按钮

jquery mobile如何仅禁用单选按钮组的一种选择

如何检查是不是使用 JavaScript 选择了单选按钮?