【问题标题】: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>

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

【问题讨论】:

    标签: javascript jquery if-statement input radio-button


    【解决方案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'); 不简单。? :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 2012-11-22
    • 2015-02-19
    • 2017-07-24
    • 1970-01-01
    相关资源
    最近更新 更多