JavaScript验证,用于检查是否选择了单选按钮
JavaScript validation to check if a radio button is selected?
我有以下表格:
<form name="form" action="contact_submit.php" onsubmit="return validateForm()"
method="post">
<h2>Your Name</h2>
<input type="text" name="name">
<h2>Your E-mail Address</h2>
<input type="text" name="email" />
<h2>Phone Number</h2>
<input type="text" name="phone" />
<h2>Your Message</h2>
<input type="text" name="message" width="300px" height="200px" />
<h2>Preferred Contact?</h2>
<input type="radio" name="contact" value="email" id="email-pref">Email
<input type="radio" name="contact" value="phone" id="phone-pref"> Phone
<input type="submit" value="Submit">
</form>
提交后,将执行以下JavaScript代码(在validateForm()函数中):
if (document.getElementByID("email-pref").checked == true ||
document.getElementByID("phone-pref").checked == true) {
alert("poopoo");
return false;
}
else {
alert("Contact preference must be filled out");
return false;
}
当我检查其中一个按钮或不检查任何按钮时,表单仍然是提交的,但所有其他验证语句似乎都有效。它不工作是有原因的吗?或者你能建议一种更好的方法来检查是否至少选择了一个单选按钮吗?谢谢
JavaScript区分大小写。是getElementById
而不是getElementByID
。
如果按名称引用单选按钮,则不需要getElementById(因此可以删除ID属性)。使用this:将对表单的引用传递给侦听器
<form ... onsubmit="return validateForm(this)" ...>
则在功能引用中,按名称列出无线电组:
function validateForm(form) {
var contacts = form.contact;
if (contacts[0].checked || contacts[1].checked) {
// one or the other is checked
} else {
// neither is checked
}
// more validation ...
}
然而,当使用单选按钮时,您可以默认选中一个,然后您可以确保在发布表单时选中一个:
<input type="radio" name="contact" value="email" checked>Email
<input type="radio" name="contact" value="phone"> Phone
现在,您不需要验证是否选中了一个。
相关文章:
- 如果选择单选按钮,则显示字段
- 选择单选按钮更新2个输入字段
- 如果选择单选按钮,则显示表单
- 选择单选按钮时显示更新按钮
- 选择单选按钮时显示或隐藏窗体
- 如何使用Greasemonkey自动选择单选按钮
- 如何通过单击选项而不是实际按钮本身来选择单选按钮
- JavaScript - 如果选中任何复选框,请选择单选按钮
- 无法在 jquery 中选择单选按钮
- 需要在选择单选按钮上启用提交按钮
- 取消选择单选按钮
- JavaScript-一旦选择单选按钮,就会删除以前的字段集
- 如何在加载时通过jQuery选择单选按钮
- AngularJs:默认情况下未选择单选按钮
- 我需要在选择单选按钮时显示一个下拉框
- 单击时取消选择单选按钮
- 选择单选按钮或下拉菜单项时自动更新PHP变量
- 如何在选择单选按钮后启用提交按钮
- 如何防止用户为每种情况选择单选按钮
- 使用 Json 如何根据数据库中的值选择单选按钮