0

我们有一个网络表单,下面是这个 php 表单中无线电代码的设置方式:

<input type="radio" name="2074" id="2074" value="Yes" class="valuetext" >Yes
<input type="radio" name="2074" id="2074" value="No" class="valuetext" >No

我正在研究一些适用于文本字段的自定义验证代码,但只是用单选按钮打了一个障碍,所以我确信这将是复选框的问题

所以这是验证的代码,

function blank(field) {
    if ((field.type == "text" || field.type == "textarea") && (field.value == " " || field.value == ""))
    {
        return true;
    }
    else if ((field.type ="radio" || field.type == "checkbox") && (!(field.checked || field.selected || field.selectedIndex > -1)))
    {
        return true;
    }
    else {
        return false;
    }
}

但是当涉及到单选按钮时,它只检查它遇到的第一个单选按钮。因此,例如,如果我运行验证并且未检查集合中的任何一个收音机,它就可以工作,给我我需要的错误消息,但这只是因为它检查了第一个按钮,该按钮是空的。

如果我选择“”,收音机的第二个选项,它不能正常工作,当它不应该时显示错误消息

如果我选择收音机的第一个选项“是”,它会按预期工作。

如何让 JavaScript 抓取组中的所有收音机,检查该组中是否有任何被选中?

先感谢您。

收集需要检查的字段的函数: *另外,这是一个上面的 json 脚本,它为 fieldlist 提供数据*

var field = [], blankFields = [],
        listText = [], listItem = [], fieldId = [], label = [];

function checkRequired(fieldList) {
    for (var i = 0; i < fieldList.length; i++)
    {
        listText = fieldList[i];
        listText = listText.substring(1, listText.length - 1);
        listItem = listText.split("||");
        fieldId = listItem[0];
        label = listItem[1];
        field = document.getElementById(fieldId);

        if (visible(field) && blank(field)){
            blankFields.push(label);
        }
    }
    //return blankFields;
    if (blankFields.length > 0) {
        displayError(blankFields);
    }
}
4

2 回答 2

0

我决定混入一些 jquery,让生活变得更轻松:

else if (field.type=="radio")
                {
                 var radiocheck = $('input[type="radio"][name="' + field.name + '"]:checked').size() > 0;
                 if (radiocheck == false){
                     return true;
于 2013-01-28T14:04:24.173 回答
0

您可以使用document.getElementsByName("2074")然后迭代以查看是否检查了任何内容。

相关问题: 在 JavaScript 中,如何获取页面中具有给定名称的所有单选按钮?

于 2013-01-24T18:35:09.240 回答