检查是否选择了单选按钮的JavaScript验证?

检查是否选择了单选按钮的JavaScript验证?,javascript,html,Javascript,Html,我有以下表格: <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="em

我有以下表格:

<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区分大小写。它是
getElementById
而不是
getElementById

如果按名称引用单选按钮,则不需要getElementById(因此可以删除ID属性)。使用以下命令将对表单的引用传递给侦听器:

但是,在使用单选按钮时,可以默认选中一个按钮,然后可以确保在发布表单时选中一个按钮:

  <input type="radio" name="contact" value="email" checked>Email
  <input type="radio" name="contact" value="phone"> Phone
电子邮件
电话

现在你不需要验证一个是否被检查了。

它的
getElementById
不是
getElementById
哦,我的错误,我不认为JavaScript会把所有的西格蒙德·弗洛伊德(Sigmund Freud)都推到我身上。
<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