Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查单选按钮是否选中_Javascript_Php_Jquery_Arrays - Fatal编程技术网

Javascript 如何检查单选按钮是否选中

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

我正在做一个测验系统。在这方面,我想做的是从数据库中收集问题,并使用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 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 &rarr; </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);
    }