2012-09-11 38 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端 –