Javascript 如何检查单选按钮是否选中
我正在做一个测验系统。在这方面,我想做的是从数据库中收集问题,并使用php将其放在如下位置:Javascript 如何检查单选按钮是否选中,javascript,php,jquery,arrays,Javascript,Php,Jquery,Arrays,我正在做一个测验系统。在这方面,我想做的是从数据库中收集问题,并使用php将其放在如下位置: <div class="span12" style="margin-top:140px;"> <ul id="part"> <?php //print_r($quiz); $i = 1; foreach($quiz as $quiz) { echo "<li id='div$i' style='display:none;'> <p s
<div class="span12" style="margin-top:140px;">
<ul id="part">
<?php //print_r($quiz);
$i = 1;
foreach($quiz as $quiz)
{
echo "<li id='div$i' style='display:none;'>
<p style='font-size:20px;'><strong>Question $i </strong>: $quiz->Question </p>
<br/><div style='margin-left:60px;font-size:14px;'>
<input type='radio' name='op11' id='op1$i' value='1' style='opacity: 0;'>$quiz->op1<br/><br/>
<input type='radio' name='op11' id='op2$i' value='2' style='opacity: 0;'>$quiz->op2<br/><br/>
<input type='radio' name='op11' id='op3$i' value='3' style='opacity: 0;'>$quiz->op3<br/><br/>
<input type='radio' name='op11' id='op4$i' value='4' style='opacity: 0;'>$quiz->op4<br/><br/></div>
</li>";
$i++;
}
?>
</ul>
<div class="span6">
<button id="next" class="btn btn-info btn-large" style="float:right;">Next → </button>
</div>
</div>
将id用于单选按钮:
例如:
if(document.getElementById('op1$i').checked) {
//radio button is checked
您应该检查是否选择了当前答案。尝试以下方法:
if ($("input:radio[name=op11]:checked").length == 1) {
//One item checked with that name
var val = $("input:radio[name=op11]:checked").val();
} else { var val=0; } //or handle the error some other way
您需要检查它是否为null或未定义。如果是(null或未定义),则添加0,否则添加所选值。没有ID等于op1$i
否的元素,因为$i是循环中的php变量,例如在第一次迭代时,ID等于:op11
然后op12
,等等。。。也就是说,这是一个很好的建议,可以检查DOM节点的属性checked
,就像在您的回答中一样。我遇到的问题是,如果我检查第二个答案2而不选择第三个问题,那么数组将是[1,2,2],如果您不允许回答一个问题,那么添加一个特定的值,告诉您没有选择答案(例如0)。如果用户必须检查答案,则使用警报(“您必须回答”)处理“缺少的答案”;只有当我没有选择第一个答案的答案时,这才有效,但是当我选择第一个答案并且没有选择下一个问题的答案时,第一个问题的答案就会放入数组中
if ($("input:radio[name=op11]:checked").length == 1) {
//One item checked with that name
var val = $("input:radio[name=op11]:checked").val();
} else { var val=0; } //or handle the error some other way
var val = $("input:radio[name=op11]:checked").val();
if (typeof(val) !== "undefined" && val !== null){
answers.push(val);
}else{
answers.push(0);
}