2012-11-22 129 views
1

我有兩個不同的單選按鈕組需要在提交表單之前進行驗證。我可能需要在將來添加更多選項,但現在有2組是/否問題。這是目前爲止單選按鈕的代碼。如何驗證多組單選按鈕?

<form name=myForm action="test.php" method="post"> 
<input type="radio" name="question1" id="question1"> 
<input type="radio" name="question1" id="question1"> 
<input type="radio" name="question2" id="question2"> 
<input type="radio" name="question2" id="question2"> 
<input type="submit" value="Submit"> 
</form> 

所以基本上在尋找一種方式,以確保一個選項被每組(問題1和問題2),然後才能提交表單內選擇。

+0

這是一個重複的http://stackoverflow.com/questions/3780040/驗證一個單選按鈕被檢查與jQuery的谷歌之前,你發佈。 – roacher

+1

這只是它的重複,如果他想使用jQuery,這篇文章沒有提到。 – Doug

+0

是的,我寧願不使用jQuery,如果可能的話我想使用Javascript,我也試圖檢查兩組相同形式的單選按鈕。每個組都需要選擇一個選項......您展示的示例只有一組選項。 – gb2016

回答

1

這個問題實際上是兩個部分和一個側面說明。

附註(與問題無關)是id應始終是唯一的,有兩個電臺的id爲「question1」是無效的。

問題一是在表單提交時檢查它。這樣做的最簡單方法是將「return functName()」添加到表單的onsubmit標記中。

<form name='myForm' action='test.php' method='post' onsubmit='return validate()'> 

表單是否提交將取決於您在提交中是否返回true或false。

第二個是抓住收音機盒並檢查它們是否被選中。 您可以通過抓住每個無線seelct的輸入:

document.forms.myForm.nameOfRadioHere 

將你提供的下該名稱的輸入列表。

然後,你只需要遍歷它們來檢查它們中的一個是否已被檢查爲有效。

例如代碼:

使用Javascript:

function validate(){ 
    if (checkRadio("question1") && checkRadio("question2")){ 
    return true; 
    }else{ 
    alert("Please fill in both radio boxes!"); 
    return false; 
    } 
} 

function checkRadio(name){ 
    var radio = document.forms.myForm[name]; 
    for (var option in radio){ 
    if(radio[option].checked){ 
     return true; 
    } 
    } 
    return false; 
} 

HTML

<form name='myForm' action="test.php" method="post" onsubmit='return validate()'> 
    <input type="radio" name="question1"> 
    <input type="radio" name="question1"> 
    <input type="radio" name="question2"> 
    <input type="radio" name="question2"> 
    <input type="submit" value="Submit"> 
</form>