繁体   English   中英

如何检查所有单选按钮是否都被选中?

[英]How to check if all the radio buttons are selected or not?

好吧,我正在尝试构建一个具有单选按钮集的网页。 我正在使用jquery检查是否选中了所有单选按钮。 这是代码:

<body>
<p class="Cal">Welcome,</p>
<hr />
<p class="Radio1">Answer the questions below. You will find the results after clicking 'Check my score'.</p>
<hr />
<form method="post">
<p class="Question">1. Do you sleep early at night? (Anywhere around 9-10pm)</p>
<p>
<label>
  <span class="Radio">
  <input type="radio" name="RadioGroup1" value="Yes" id="RadioGroup1_0" />
</span></label>
<span class="Radio">    Yes
<br />
<label>
  <input type="radio" name="RadioGroup1" value="No" id="RadioGroup1_1" /> 
  No
</label>
<br />
<label>
  <input type="radio" name="RadioGroup1" value="Sometimes" id="RadioGroup1_2" />
  Sometimes    </label>
</span><br />
</p>
<p class="Question">2. Do you wake up early in morning?(Anywhere around 5-7am)</p>
<p>
<label>
  <span class="Radio">
  <input type="radio" name="RadioGroup2" value="Yes" id="RadioGroup2_0" /> 
  Yes      </span></label>
<span class="Radio"><br />
  <label>
  <input type="radio" name="RadioGroup2" value="No" id="RadioGroup2_1" /> 
  No
</label>
<br />
<label>
  <input type="radio" name="RadioGroup2" value="Sometimes" id="RadioGroup2_2" /> 
  Sometimes
</label>
</span><br />
</p><input type="submit" value="Check my score" /></form></body>

那么有30个这样的问题。 我的jQuery代码如下:

$(document).on('submit', 'form', function () {
var validate = true;
var unanswered = new Array();

// Loop through available sets
$('.Radio').each(function () {
    // Question text
    var Question = $(this).prev().text();
    // Validate
    if (!$(this).find('input').is(':checked')) {
        // Didn't validate ... dispaly alert or do something
        unanswered.push(Question);

        validate = false;
    }
});

if (unanswered.length > 0) {
    msg = "Please answer the following questions:\n" + unanswered.join('\n');
    alert(msg);
}
else{
    msg = "Done!";
    alert(msg);
}
return validate;
});

现在,我尝试了所有可能的方法来完成这项工作。 但是,即使我选中了每个答案的单选按钮,我仍然会继续弹出显示“请回答以下问题:”,然后是空白列表。 我从来没有收到消息“完成!” 即使所有问题的答案都经过检查。 哪里错了?

您可以使用HTML5 required属性,这是更好的选择。 您还可以使用JavaScript循环并使用以下命令从每个无线电组中检索值:

$("input:radio[name=radiogroupX]:checked")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM