0

我正在尝试验证是否检查了一组单选按钮以验证表单。

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 等......很遗憾,它不是一个选项。谢谢!

4

2 回答 2

2

我认为它正在发生,因为document.getElementsByName('tried')返回元素数组。所以,当你调用elem.focus()它时会抛出错误(因为数组没有方法焦点)并js停止执行。

于 2012-09-11T18:16:11.173 回答
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"))这就是它发生的原因

于 2012-09-11T17:35:13.047 回答