Javascript JS中复选框的表单验证
我正试图做一个家庭作业,但遇到了一些问题。我应该用Javascript验证表单。现在,我试图确保用户至少选中了一个复选框(四个选项中的一个),以便表单提交。(我已经完成了其他验证部分的工作,因此这部分代码似乎存在局部问题。) 这是复选框表单的html格式:Javascript JS中复选框的表单验证,javascript,html,validation,Javascript,Html,Validation,我正试图做一个家庭作业,但遇到了一些问题。我应该用Javascript验证表单。现在,我试图确保用户至少选中了一个复选框(四个选项中的一个),以便表单提交。(我已经完成了其他验证部分的工作,因此这部分代码似乎存在局部问题。) 这是复选框表单的html格式: <fieldset> <input type="checkbox" name="boxes" id="member" value="member" /> <label for="member"&g
<fieldset>
<input type="checkbox" name="boxes" id="member" value="member" />
<label for="member">I'm a member.</label>
<p><input type="checkbox" name="boxes" id="newsletter" value="newsletter" />
<label for="newsletter">Please send me your monthly newsletter.</label></p>
<p><input type="checkbox" name="boxes" id="preshow" value="preshow" />
<label for="preshow">I'm interested in hearing about pre-show events.</label></p>
<p><input type="checkbox" name="boxes" id ="none" value="none" />
<label for="none">None of the above.</label></p>
我是会员。
请把你的月刊寄给我
我很想听听演出前的活动
以上都没有
这是我写的,试图用Javascript验证它:
function validateForm() {
var checkBoxes = document.getElementsByName("boxes");
for (var i=0; i < checkBoxes.length; i++) {
if (checkBoxes[i].checked === true) {
return true;
break;
} else {
alert("At least one checkbox must be selected.");
return false;
}
}
}
函数validateForm(){
var复选框=document.getElementsByName(“框”);
对于(变量i=0;i
这不起作用;无论是否选中框,表单都会提交。
我真的很想在这里得到一些帮助,因为我不知道我做错了什么。正如我所说,这个问题似乎存在于这个特定代码的某个地方,因为在单独的代码块中的其他验证确实有效
这是完整的HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title> hw5 </title>
<link rel ="stylesheet" href="form.css"/>
<script src="form.js"></script>
<script src="states.js"></script>
<!--<script src="browser.js"></script>-->
</head>
<body>
<div>
<h1><b>Buy your tickets online</b></h1>
<form name="theForm" method="post" action="https://cs101.cs.uchicago.edu/~sterner/show-data.php" onsubmit="return validateForm(this)">
<section id="name-and-address">
<fieldset>
<h2 class="name">Full name</h2>
<label for="firstname">First name:</label> <input type="text" name ="firstname" id="firstname" autofocus="autofocus" />
<p><label for="lastname">Last name:</label> <input type="text" name ="lastname" id="lastname" /></p>
</fieldset>
<fieldset>
<h2 class="Billing Address">Billing Address</h2>
<label for="street">Street name and number:</label>
<input type="text" name ="street" id="street" />
<p><label for="city">City:</label>
<input type="text" name="city" id="city" /></p>
<p><label for="state">State:</label>
<select id="state" name="state">
</select></p>
<p><label for="zip">Zip code:</label>
<input type="text" name="zip" id="zip" /></p>
</fieldset>
</section>
<section>
<aside>
<fieldset>
<h2 class="payMethod">Method of Payment</h2>
<p class="row">
<input type="radio" id="pay-pal" name="payment" value="pay-pal" />
<label for="pay-pal">PayPal</label>
</p>
<p class="row">
<input type="radio" id="credit" name="payment" value="credit" />
<label for="credit">Credit Card</label>
</p>
</fieldset>
<fieldset>
<input type="checkbox" name="boxes" id="member" value="member" />
<label for="member">I'm a member.</label>
<p><input type="checkbox" name="boxes" id="newsletter" value="newsletter" />
<label for="newsletter">Please send me your monthly newsletter.</label></p>
<p><input type="checkbox" name="boxes" id="preshow" value="preshow" />
<label for="preshow">I'm interested in hearing about pre-show events.</label></p>
<p><input type="checkbox" name="boxes" id ="none" value="none" />
<label for="none">None of the above.</label></p>
</fieldset>
<fieldset>
<p><label for="email">Email address:</label>
<input type="email" name="email" id="email" /></p>
</fieldset>
</aside>
</section>
<section id="submit">
<fieldset>
<input type="submit" value="Buy my tickets."/>
</fieldset>
</section>
</div>
</body>
</html>
hw5
网上买票
全名
名字:
姓氏:
帐单地址
街道名称及编号:
城市:
声明:
邮政编码:
付款方式
贝宝
信用卡
我是会员。
请把你的月刊寄给我
我很想听听演出前的活动
以上都没有
电邮地址:
您遗漏了调用函数的部分。这实际上只是一个更大的验证函数的一小部分,在提交表单时会调用该函数,因此,在我进入复选框之前,我在标记()的HTML中编写了调用。。。它对验证函数的其他部分很好,但对这个部分不行。用一个函数来验证一堆东西有意义吗。。?也许这就是事情不顺利的原因?我应该把它分成几个功能?你说的“提交表单时”是什么意思?在POST
时间,已经太晚了。您应该在更改表单的任何字段时执行整个验证操作,并且仅当验证通过时才启用提交
按钮…我的意思是,当单击提交按钮时,验证功能将运行,如果出现任何错误,则应停止提交