我有一个电子邮件列表,旁边有一个复选框,用户可以选择他/她想要通过电子邮件发送的地址。现在我添加了另一个复选框,选中时将检查所有其他复选框。下面是我写的代码(当然有stackoverflow的帮助):
<SCRIPT LANGUAGE="JavaScript">
function selectFunction (checkall,field)
{
if(checkall.checked==true){
for (i = 0; i < field.length; i++)
field[i].checked = true ;
}else{
for (i = 0; i < field.length; i++)
field[i].checked = false ;
}
}
</script>
<form name="myform" action="profile-invite.html" method="post">
<b>Your Favorite Scripts & Languages</b><br>
<input type="checkbox" name="list" value="1">aaa@xxx.com<br>
<input type="checkbox" name="list" value="2">bbb@xxx.com<br>
<input type="checkbox" name="list" value="3">ccc@xxx.com<br>
<input type="checkbox" name="list" value="4">ddd@xxx.com<br>
<input type="checkbox" name="list" value="5">eee@xxx.com<br>
<input type="checkbox" name="selectallcb" value="Check All"
onClick="selectFunction(document.myform.selectallcb,document.myform.list)">
<input type="submit" name="formSubmit" value="Submit" />
</form>
“全选”功能正常,但是使用print_r我看到当单击提交按钮时,提交的值是我选择的最后一个复选框。例如,如果我点击5-3-1-2,$ _POST中的值为“2”而不是其余值。
我意识到我的代码只能注册一个选中的复选框,因此只考虑最后一个。所以我通过在复选框的名称后添加[]来重写代码:
<form name="myform" action="profile-invite.html" method="post">
<b>Your Favorite Scripts & Languages</b><br>
<input type="checkbox" name="list[]" value="1">aaa@xxx.com<br>
<input type="checkbox" name="list[]" value="2">bbb@xxx.com<br>
<input type="checkbox" name="list[]" value="3">ccc@xxx.com<br>
<input type="checkbox" name="list[]" value="4">ddd@xxx.com<br>
<input type="checkbox" name="list[]" value="5">eee@xxx.com<br>
<input type="checkbox" name="selectallcb" value="Check All"
onClick="selectFunction(document.myform.selectallcb,document.myform.list)">
<input type="submit" name="formSubmit" value="Submit" />
</form>
现在,当我用print_r检查时,它会记录多个选项。(如果我点击5-3-1-2,$ _POST中的值现在为[0] =&gt; 5,[1] =&gt; 3 ,[2] =→1,[3] =&GT; 2)
但是“全选”复选框不再有效。我假设是由于[]将字段转换为数组。我尝试了各种方法(通过将“document.myform.list”替换为“document.myform.list []”等)。到目前为止没有工作,我将继续进行实验,但如果有人对如何合并以上2个代码请帮忙。
谢谢
答案 0 :(得分:1)
改变这个:
onClick="selectFunction(document.myform.selectallcb,document.myform.list)"
到此:
onClick="selectFunction(document.myform.selectallcb,document.myform['list[]'])"