2012-09-11 41 views
0

我试图验证是否一组单选按钮被选中以验证表单。使用getElementsByName来验证单选按钮

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

+0

不确定它是否是一个错字,但是你错过了关闭你的第一个函数的'}'。 – j08691

+0

与你的问题没有关系,但是'document.myform.tried.checked'实际上应该是'elem.checked'。 – Vikdor

+0

嘿,我已根据您的建议更新代码,但它似乎仍然继续并处理表格 –

回答

2

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

+0

完美,谢谢!作品魅力。非常有用的信息;) –

+0

你好吗?我是否跳过这部分 –

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")) that`s为什么它的发生

+0

嗨,谢谢。这实际上是我的错字,我确实在我的代码中包含了括号。任何其他想法? –

+0

看着rht的其他东西你能不能更新你的html端 –