使用getElementsByName验证单选按钮

时间:2012-09-11 17:29:40

标签: 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(document.myform.tried.checked == 1) {
        return true;
    }
    else {
        alert(helperMsg);
        elem.focus();
        return false;
    }
}

这会返回警报,但由于某种原因,表单仍会被处理。我想知道我做错了什么......任何帮助都会受到赞赏。

如果你想知道为什么我不只是使用jquery等......遗憾的是它不是一个选择。谢谢!

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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;
}
}

尝试这个我认为你跳过一个结束括号in if(radioChecked(triedIt, "Please select"))这就是它发生的原因