[英]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.