Javascript 具有相同名称的两个输入

Javascript 具有相同名称的两个输入,javascript,html,google-chrome,firefox,Javascript,Html,Google Chrome,Firefox,我正在开发一个有多种表单的webapp。当两个输入具有相同的名称时,问题就会出现。如果没有选择任何人,我想提醒用户。这在Chrome上运行得非常好,但如果他们两个都不被处理,Firefox就不能告诉我 JScript: function validateForm(assignmentForm) { doc = document.getElementById(assignmentForm); var messages = []; valid =

我正在开发一个有多种表单的webapp。当两个输入具有相同的名称时,问题就会出现。如果没有选择任何人,我想提醒用户。这在Chrome上运行得非常好,但如果他们两个都不被处理,Firefox就不能告诉我

JScript:

function validateForm(assignmentForm)   
{
        doc = document.getElementById(assignmentForm);
        var messages = [];
        valid = true;

        if (doc.ambit.value=="")
        {
            messages.push("One of two ambits must be selected");
            valid = false;     
        }

        if (doc.name.value=="")
        {
           messages.push("Write a name");
           valid = false;     
        }

        if(!valid){
            alert(messages.join('\n'));
            return false;
        }
        return true;
}
HTML:


当我未选择两个半径中的任何一个而提交此表单时,Chrome会提醒我“必须选择两个范围中的一个”。但是Firefox没有通知我任何事情


我的第一个想法是给这两个输入提供一个ID并分别处理它们,但是否可以用另一个选项来解决这个问题?

不要先假设表单有效,然后检查它是否无效,试着假设它无效,然后检查它是否有效

然后,您可以循环遍历每个单选按钮,如果您找到一个选中的单选按钮,则将valid设置为true。像这样:

var valid = false;
var ambitValues = doc.getElementsByName('ambit')

for (var i = 0; i < ambitValues.length; i++) {
    if (ambitValues[i].checked) {
        valid = true;
    }
};
var valid=false;
var ambitValues=doc.getElementsByName('ambit')
对于(变量i=0;i
对于firefox
文档范围.value
数组的形式出现
所以把这张支票

    ischecked_method = false;
    for ( var i = 0; i < doc.ambit.length; i++) {
      if(doc.ambit[i].checked) {
        ischecked_method = true;
        break;
      }
    }

    if (!ischecked_method)
    {
        messages.push("One of two ambits must be selected");
        valid = false;     
    }
ischecked\u方法=false;
对于(变量i=0;i
doc.ambit
正在firefox中返回一个数组。@Katalhama没问题。很高兴我能帮忙。
    ischecked_method = false;
    for ( var i = 0; i < doc.ambit.length; i++) {
      if(doc.ambit[i].checked) {
        ischecked_method = true;
        break;
      }
    }

    if (!ischecked_method)
    {
        messages.push("One of two ambits must be selected");
        valid = false;     
    }