验证 2 组或更多组单选按钮,每组包含 4 个单选按钮
Validation of 2 or more groups of radio buttons each containing 4 radios
所以我不得不将这部分包含在我们的一个 class 项目中。我们被要求创建一个带有收音机和复选框的测验网页,然后编写一个 JavaScript 函数来验证收音机。现在,我知道这些无线电可以由每个组的循环中的个人轻松验证,但是当我的代码中有大量这些组时,这听起来不切实际。所以我尝试了以下代码:-
function quizRadioFilled()
{
var check = false;
var c = 0;
var x = 0;
var radiob = [];
radiob[0] = document.getElementsByName('q1');
radiob[1] = document.getElementsByName('q2');
radiob[2] = document.getElementsByName('q3');
radiob[3] = document.getElementsByName('q4');
radiob[4] = document.getElementsByName('q5');
radiob[5] = document.getElementsByName('q9');
radiob[6] = document.getElementsByName('q10');
for(var i = 0; i <= 6; i++)
{
for(var j = 1; j <= radiob[i].length; j++)
{
if(radiob[i].checked)
{
c = 1;
break;
}
}
if(c == 0)
{
check = false;
}
}
if(!check)
{
alert('Please attempt all the questions....');
}
}
我首先将每个组的名称存储在一个数组中。然后循环遍历以验证这些组中的每一个。如果组没有选择单选按钮,我想显示警报。但我没有得到所需的结果。虽然我现在已经完成了这个项目,但我仍然想让这个功能发挥作用。请提供一些建议。
- 您从未在任何地方将
check
设置为 true,因此它始终为 false。
radiob[i]
是一个数组(或者更准确地说,是一个 NodeList),所以 radiob[i].checked
总是未定义的。
- JavaScript 中的数组从 0 开始索引,这也适用于 NodeList。所以你的
for (var j = 1; j <= radiob[i].length; j++)
循环不正确。
如果您解决了这些问题,那么您的函数应该可以正常工作。
所以我不得不将这部分包含在我们的一个 class 项目中。我们被要求创建一个带有收音机和复选框的测验网页,然后编写一个 JavaScript 函数来验证收音机。现在,我知道这些无线电可以由每个组的循环中的个人轻松验证,但是当我的代码中有大量这些组时,这听起来不切实际。所以我尝试了以下代码:-
function quizRadioFilled()
{
var check = false;
var c = 0;
var x = 0;
var radiob = [];
radiob[0] = document.getElementsByName('q1');
radiob[1] = document.getElementsByName('q2');
radiob[2] = document.getElementsByName('q3');
radiob[3] = document.getElementsByName('q4');
radiob[4] = document.getElementsByName('q5');
radiob[5] = document.getElementsByName('q9');
radiob[6] = document.getElementsByName('q10');
for(var i = 0; i <= 6; i++)
{
for(var j = 1; j <= radiob[i].length; j++)
{
if(radiob[i].checked)
{
c = 1;
break;
}
}
if(c == 0)
{
check = false;
}
}
if(!check)
{
alert('Please attempt all the questions....');
}
}
我首先将每个组的名称存储在一个数组中。然后循环遍历以验证这些组中的每一个。如果组没有选择单选按钮,我想显示警报。但我没有得到所需的结果。虽然我现在已经完成了这个项目,但我仍然想让这个功能发挥作用。请提供一些建议。
- 您从未在任何地方将
check
设置为 true,因此它始终为 false。 radiob[i]
是一个数组(或者更准确地说,是一个 NodeList),所以radiob[i].checked
总是未定义的。- JavaScript 中的数组从 0 开始索引,这也适用于 NodeList。所以你的
for (var j = 1; j <= radiob[i].length; j++)
循环不正确。
如果您解决了这些问题,那么您的函数应该可以正常工作。