验证 2 组或更多组单选按钮,每组包含 4 个单选按钮

Posted

技术标签:

【中文标题】验证 2 组或更多组单选按钮,每组包含 4 个单选按钮【英文标题】:Validation of 2 or more groups of radio buttons each containing 4 radios 【发布时间】: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....');
    

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

【问题讨论】:

请发布getElementsByName调用返回的html drive.google.com/file/d/1PaI2F0FMKUatrc3V0AxkzSITB-CEQLDt/…。这是HTML文档的代码 【参考方案1】: 您从未在任何地方将 check 设置为 true,因此它始终为 false。 radiob[i] 是一个数组(或者,更准确地说,是一个 NodeList),所以 radiob[i].checked 始终是未定义的。 JavaScript 中的数组从 0 开始索引,这也适用于 NodeList。所以你的for (var j = 1; j &lt;= radiob[i].length; j++) 循环不正确。

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

【讨论】:

非常感谢朋友!它现在正在工作。有趣的是,像这样的小错误会扰乱你的工作??

以上是关于验证 2 组或更多组单选按钮,每组包含 4 个单选按钮的主要内容,如果未能解决你的问题,请参考以下文章

一行中的一组单选按钮,同时选择一行中的一个单选按钮,它会影响另一行目标-c

斯卡拉玩!带有 2 个单选按钮的表单验证

delphi 一个窗体添加多组单选框问题

单选按钮未在 Angular JS 中保存正确的值

如何在我的程序中保存一组单选按钮的状态?

导轨视图中的多组单选按钮