【问题标题】:Validation of 2 or more groups of radio buttons each containing 4 radios验证 2 组或更多组单选按钮,每组包含 4 个单选按钮
【发布时间】:2021-08-30 00:49:21
【问题描述】:

所以我不得不将这部分包含在我们的一个课堂项目中。我们被要求创建一个带有收音机和复选框的测验网页,然后编写一个 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....');
    }
}

我首先将每个组的名称存储在一个数组中。然后循环遍历以验证这些组中的每一个。如果组没有选择单选按钮,我想显示警报。但我没有得到所需的结果。虽然我现在已经完成了这个项目,但我仍然想让这个功能工作。请提供一些建议。

【问题讨论】:

标签: javascript function validation radio


【解决方案1】:
  • 您从未在任何地方将 check 设置为 true,因此它始终为 false。
  • radiob[i] 是一个数组(或者,更准确地说,是一个 NodeList),所以 radiob[i].checked 始终是未定义的。
  • JavaScript 中的数组从 0 开始索引,这也适用于 NodeList。所以你的for (var j = 1; j &lt;= radiob[i].length; j++) 循环不正确。

如果您解决了这些问题,那么您的功能应该可以正常工作。

【讨论】:

  • 非常感谢朋友!它现在正在工作。有趣的是,像这样的小错误会扰乱你的工作??
猜你喜欢
  • 2013-02-10
  • 2017-11-18
  • 1970-01-01
  • 2014-01-08
  • 2011-06-26
  • 2013-01-08
  • 2012-02-07
  • 2012-11-11
  • 2013-06-15
相关资源
最近更新 更多