Javascript 使用getElementsByName验证单选按钮

Javascript 使用getElementsByName验证单选按钮,javascript,forms,radio-button,validation,radio-group,Javascript,Forms,Radio Button,Validation,Radio Group,我试图验证是否选中了一组单选按钮以验证表单 function formValidator() { var triedIt = document.getElementsByName('tried'); if(radioChecked(triedIt, "Please select") { return true; } return false; } function radioChecked(elem, helperMsg) { if

我试图验证是否选中了一组单选按钮以验证表单

function formValidator() {
    var triedIt = document.getElementsByName('tried');
    if(radioChecked(triedIt, "Please select") {
        return true;
    }
    return false;   
}

function radioChecked(elem, helperMsg) {
    if(document.myform.tried.checked == 1) {
        return true;
    }
    else {
        alert(helperMsg);
        elem.focus();
        return false;
    }
}
这将返回警报,但出于某种原因,表单仍会得到处理。我想知道我做错了什么。。。任何帮助都将不胜感激

如果你想知道为什么我不直接使用jquery等等。。。不幸的是,这不是一个选择。谢谢

function formValidator(){
var triedIt = document.getElementsByName('tried');
if(radioChecked(triedIt, "Please select")){
return true;
}
return false;   
}

function radioChecked(elem, helperMsg){
if(document.myform.tried.checked == 1) {
    return true;
}else{
    alert(helperMsg);
    elem.focus();
    return false;
}
}
试试这个,我想你跳过了if(radioChecked(triedIt,“请选择”)中的一个结束括号)
这就是它发生的原因


试试这个,我想你跳过了if(radioChecked(triedIt,“请选择”)中的一个右括号)
这就是它发生的原因

我认为它发生的原因是
文档。getElementsByName('trued')
返回元素数组。因此,当您调用
elem.focus()
时,它将抛出错误(因为数组没有方法焦点),并且
js
停止执行。

我认为这是因为
document.getElementsByName('trusted')
返回元素数组。所以,当您调用
elem.focus()
时,它将抛出错误(因为数组并没有方法焦点)而且
js
停止执行。

不确定是否是打字错误,但您的第一个函数缺少一个结束
}
。与您的问题无关,但
document.myform.trued.checked
实际上应该是
elem.checked
。嘿,我已经按照你的建议更新了代码,但它似乎仍然只是继续处理表单。不确定它是否是打字错误,但你的第一个函数缺少了一个结束符
}
。与你的问题无关,但是
document.myform.trued.checked
实际上应该是
elem.checked
。嘿,我已经按照你的建议更新了代码,但似乎还是继续处理formHi,谢谢。这实际上是我的错别字,我的代码中包含了括号。还有其他的想法吗?其他看起来不错的东西你能更新你的html端吗?谢谢。这实际上是我的错别字,我的代码中包含了括号。还有其他的想法吗?其他的东西看起来rht你能更新你的html端到完美,谢谢!他很有魅力。非常有用的信息;)是的,我跳过了这个环节,太好了,谢谢!他很有魅力。非常有用的信息;)是的,我跳过了这部分