簡體   English   中英

在JavaScript中選中單選按鈕的問題

[英]Issue with Radio button checked in JavaScript

我正在一個JSP頁面上,該頁面具有ID為ans1, ans2, ans3... etc多個單選按鈕。單選按鈕的數量取決於上一頁的響應而有所不同。 用戶應為所有單選按鈕選擇答案。 也就是說,用戶必須為所有單選按鈕ans1,ans2,ans3 ...等選擇響應。我為以下提交按鈕單擊事件編寫了一個Java代碼,以進行驗證,並確保用戶已回答所有答案:

function beforeSubmit(){
    var obj = document.quizcreen;
    var qCount = obj.totQuesHidden.value;
    for (var i=1; i<=qCount; i++){
        if(document.getElementById("ans"+i).checked){
             // checked
        }else{
            alert("Please select ateleast one option");  // unchecked
            return false;
        }
    }
    obj.submit();
    return true;
}

由於某種原因,以上代碼無法正常工作。 如果未選中所有單選按鈕,則不應提交該表單。 請幫助,我知道這是非常簡單和常見的問題,但是我無法弄清楚。 提前致謝。

以下是表單操作:

<form name="quizcreen" id="quizcreen" method="post" action="QuizResult.jsp" onsubmit = "return beforeSubmit();">

您的循環中有一個return true語句。 因此,當選中第一個單選按鈕時,它將不檢查其他單選按鈕。

function beforeSubmit(){
    var obj = document.quizcreen;
    var qCount = obj.totQuesHidden.value;
    var allChecked = true;
    for (var i=1; i<=qCount; i++){
        if(! document.getElementById("ans"+i).checked){
            allChecked = false;
        }
    }

    if(! allChecked){
        alert("Please select ateleast one option");  // unchecked
        return false
    }
    obj.submit();
    return true;
}

好的,我發現了一種更好的方式來處理我的情況,因此,我將為您的信息共享代碼:

function beforeSubmit() {
        var obj = document.quizcreen;
        var allChecked = true;
        $("input:radio").each(function() {
            var name = $(this).attr("name");
            if ($("input:radio[name=" + name + "]:checked").length == 0) {
                allChecked = false;
            }
        });
        if (!allChecked) {
            alert("Please answer all the questions."); // unchecked
            return false;
        }
        obj.submit();
        return true;
    }

您的問題至少要檢查一個。

做這個東西

function isRadioChecked() {
return ($('input[type=radio]:checked').size() > 0);

}

暫無
暫無

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

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