试图验证我的单选按钮,但它只是不工作
Posted
技术标签:
【中文标题】试图验证我的单选按钮,但它只是不工作【英文标题】:Trying to validate my radio buttons but it's just not working 【发布时间】:2014-01-04 11:29:51 【问题描述】:在 java 脚本验证方面,我是一个极端的新手,所以如果我的代码中的所有内容都是错误的,我不会感到惊讶。
我正在尝试验证我的单选按钮。
我之前用这种格式尝试过:
if (document.ExamEntry.GCSE.checked == true)
confirm("You have selected GCSE. Is this correct?");
if (document.ExamEntry.A2.checked == true)
confirm("You have selected GCSE. Is this correct?");
if (document.ExamEntry.A2.checked == true)
confirm("You have selected A2. Is this correct?");
因为我希望它为每个单选按钮提供一条消息,但这当然不起作用。 (sumbit 按钮通过转发到下一页来工作,但取消按钮的作用相同,因为它没有给出我不知道该怎么做的命令)有人告诉我 onClick 命令会很好,但我试过了它仍然失败,因为我不太确定如何应用它。
所以我尝试了这个:(我现在的新代码)
functioncheckRadio ()
var level = "";
var qualification = document.ExamEntry.Rbutton.value;
var i;
for (i=0; i <qualification; i++)
if (document.ExamEntry.qualification[i].checked)
level = document.ExamEntry.Rbutton.value;
break;
if (level == "")
document.getElementById("Rbutton").innerhtml = "You must
select a qualification level";
return false;
else
document.getElementById("Rbutton").innerHTML = "";
return = true;
这是我的html:
<td id="RadioGCSE">GCSE</td>
<td><input type="radio" name="Rbutton" value="GCSE" id="r1" checked = "checked" /></td>
<tr>
<td id="RadioAS">AS</td>
<td><input type="radio" name="Rbutton" value="AS" id="r2" /></td>
</tr>
<td id="RadioA2">A2</td>
<td><input type="radio" name="Rbutton" value="A2" id="r3" /></td>
<tr>
我的意图是验证每个单选按钮。例如: 如果选择了 GCSE,那么它将显示以下消息:“您已选择 GCSE。这是正确的”,并带有一个提交框,在单击时将其转发到下一页,或者一个取消按钮,它只是停止事件以便用户停留在同一页面上,以便他们可以选择其他选项。
对于冗长的代码/编写量,我深表歉意。我是一个明显的新手。
【问题讨论】:
这还不是你所有的 HTML 对吧?如果是,则无效。您缺少<table></table>
标签和<tbody></tbody>
标签。
return = true;
是无效的语法。我想你的意思是return true;
。另外,尝试将functioncheckRdaio
更改为function checkRadio
。
@War10ck 不,这不是我的全部 HTML。我确实提到了其他标签,只是上面没有显示。
@squeamishossifrage 尝试返回 true;和功能 checkRadio 但没有帮助。感谢您的回复(和war1ock)
好吧,您还没有说明如何或何时(甚至 if)调用此函数。我只是指出明显的错误。也许您只需要更仔细地检查您的代码。
【参考方案1】:
每个输入都应该有一个唯一的 id。
<td id="RadioGCSE">GCSE</td>
<td><input type="radio" id="Rbutton1" name="Rbutton1" value="GCSE" id="r1" checked = "checked" /></td>
<tr>
<td id="RadioAS">AS</td>
<td><input type="radio" id="Rbutton2" name="Rbutton2" value="AS" id="r2" /></td>
</tr>
<td id="RadioA2">A2</td>
<td><input type="radio" id="Rbutton3" name="Rbutton2" value="A2" id="r3" /></td>
<tr>
您还必须使用“getElementsByName”或更好的方法进行验证,使用“getElementById”
if (document.getElementById('Rbutton1').checked == true)
confirm("You have selected GCSE. Is this correct?");
if (document.getElementById('Rbutton2').checked == true)
confirm("You have selected GCSE. Is this correct?");
if (document.getElementById('Rbutton3').checked == true)
confirm("You have selected A2. Is this correct?");
此处的示例: http://jsfiddle.net/rv9uu/2/
【讨论】:
【参考方案2】:也许你可以试试这个代码。它会提醒您选择的单选按钮的值。
脚本:
<script type="text/javascript" language="javascript">
<!--
function CheckRadio()
var rdio = document.getElementsByTagName('input');
for (var i=0; i<rdio.length; i++)
if (rdio[i].type == 'radio' && rdio[i].checked)
alert("You selected " + rdio[i].value);
-->
</script>
HTML:
<form method="post" action="">
<input type="radio" name="Rbutton" value="GCSE" id="r1" />GCSE<br />
<input type="radio" name="Rbutton" value="AS" id="r2" />AS<br />
<input type="radio" name="Rbutton" value="A2" id="r3" />A2<br /><br />
<input type="button" name="btn" value="Submit" onclick="javascript: CheckRadio()">
</form>
【讨论】:
以上是关于试图验证我的单选按钮,但它只是不工作的主要内容,如果未能解决你的问题,请参考以下文章