2012-11-22 95 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>