我不能简单地了解javascript验证。我见过教程,它只是没有找到我。有人请给我一个简单的逐步指导,说明我如何为复选框添加验证。所以说这是我的形式:
<form name="form1" method = "post">
<input name="Conservatives" type="checkbox" value="Conservatives" /> Conservative
<input name="Liberal Democrats" type="checkbox" value="Liberal Democrats" /> Liberal Democrats
<input name="Labour" type="checkbox" value="Labour" /> Labour
</form>
我希望用户至少选择2个复选框。验证应该从客户端进行,然后我将使用php将值发送到数据库? 任何帮助人?
答案 0 :(得分:0)
所以你想验证一下,根据你的评论,至少检查了其中两个复选框?我会给他们所有相同的名字:
<input name="partyAffiliation" type="checkbox" value="Conservatives" /> Conservative
<input name="partyAffiliation" type="checkbox" value="Liberal Democrats" /> Liberal Democrats
<input name="partyAffiliation" type="checkbox" value="Labour" /> Labour
然后循环它们,看看有多少被检查。 document.getElementsByName
将为您提供复选框,每个复选框都有checked
属性。
var allCbs = document.getElementsByName("partyAffiliation");
var numChecked = 0;
for(var i = 0, max = allCbs.length; i < max; i++)
if (allCbs[i].checked)
numChecked++;
if (numChecked < 2)
alert("Select at least two parties!");
我不知道你的项目的细节,但我只是提到jQuery会使上面的代码变得非常简单,如果使用这个库是你不反对的东西:
var numChecked = $("input[name='partyAffiliation']:checked").length;
if (numChecked < 2)
alert("Select at least two parties!");
修改强>
在回复下面的评论时,不要担心具有相同名称的多个输入。您的服务器端代码应该接收以逗号分隔的列表,其中包含与该名称关联的所有(选定)值。因此,如果您选中所有三个复选框,则会看到类似下面的内容。
答案 1 :(得分:0)
看起来你真的想要单选按钮,而不是复选框。
如果是这种情况,请使用:
<form action="" method="post">
<label><input type="radio" name="vote" value="Conserv" /> Conservative</label><br />
<label><input type="radio" name="vote" value="LibDem" /> Liberal Democrats</label><br />
<label><input type="radio" name="vote" value="Labour" /> Labour</label><br />
</form>
然后,在您拥有的任何服务器端代码中,vote
POST变量将具有"Conserv"
,"LibDem"
或"Labour"
,具体取决于用户的选择。