簡體   English   中英

如何檢查單選按鈕是否被選中

[英]How to check the radio button is selected or not

我正在研究測驗系統。 在那我想做的是從數據庫中收集問題,並使用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>

現在使用jQuery,當我單擊下一步按鈕時,所選答案的值將放入名為答案的數組中。

當選擇答案時,將創建更正數組,但是當我沒有選擇任何答案時,則將前一個值推入數組。

為此,我使用以下jquery函數:

<script>
$(function(){
    var items = $('ul#part li');
    var answers = new Array();
    if(items.filter(':visible').length == 0)
    {
        items.first().show();
    }
    $('#next').click(function(e){
        //e.preventDefault();
        var active = items.filter(':visible:last');
        active.hide();
        var val = $("input:radio[name=op11]:checked").val();

        console.log(val)
        answers.push(val)
        var next = active.next();
        if (next.length)
             next.show();
        else{
            console.log(answers);
        }

    });
});
</script>

例如:我有三個問題,分別選擇答案2,3,1,那么答案數組是[2,3,1]是正確的,但假設我沒有選擇任何一個問題,答案不是兩個,則選擇第一個問題和第三個問題的答案分別是2,3,然后根據我的代碼創建的數組是[2,2,3]。 但是我需要,當我不選擇任何答案時,該答案的值應為0意味着在上面的示例中,數組應為[2,0,3]

我該如何實現,請幫助我更正代碼

將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
var val = $("input:radio[name=op11]:checked").val();

if (typeof(val) !== "undefined" && val !== null){

    answers.push(val);

}else{
    answers.push(0);
}

您需要檢查它是否不是null或未定義。 如果為(空或未定義),則添加0,否則添加所選值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM