PHP/Javascript限制复选框的数量

PHP/Javascript限制复选框的数量,php,javascript,arrays,checkbox,onclick,Php,Javascript,Arrays,Checkbox,Onclick,我试图限制可以选中的复选框的数量,在这种情况下只能选中3个。当使用纯HTML时,这很好。代码如下所示 HTML示例 <td ><input type=checkbox name=ckb value=2 onclick='chkcontrol()';></td><td>Perl</td> Javascript函数 <script type="text/javascript"> function chkcontrol(j)

我试图限制可以选中的复选框的数量,在这种情况下只能选中3个。当使用纯HTML时,这很好。代码如下所示

HTML示例

<td ><input type=checkbox name=ckb value=2 onclick='chkcontrol()';></td><td>Perl</td>
Javascript函数

<script type="text/javascript">  
function chkcontrol(j) {  
var total=0;
for(var i=0; i < document.form1.ckb.length; i++){
if(document.form1.ckb[i].checked){  
total =total +1;}  
if(total > 3){  
alert("Please Select only three")       
document.form1.ckb[j].checked = false;  
return false;
}  
}    
}  
</script>
将固定的HTML值替换为MYSQL数据库中的值时会出现问题。所有信息均正确显示,并可通过“提交”按钮发布到其他页面。然而,从数据库中分配给每条记录的“值”似乎并没有在javascript函数中发挥作用

<td><input name="checkbox[]" type="checkbox" value="<?php echo $rows['TCA_QID'];?>" onclick="chkcontrol();"></td>
我已尝试更改javascript函数中的名称以匹配“复选框”名称。如有任何建议,将不胜感激


谢谢

在第二个版本中,输入元素的名称是checkbox[],但在JavaScript函数中,您正在寻找一个名为ckb的元素。如果您让JavaScript函数查找错误的名称,它将无法找到您的字段

你说你已经试着改变了。你试着那样做的时候发生了什么?确保您命名的是元素ckb,而不是ckb[]


您是否查看了为页面生成的HTML中复选框的值?它们是否符合您的期望?

您的函数声明有一个参数:它在函数调用中丢失。您是否尝试显示生成的源代码?我只是讨厌未插入的代码。。。。。。。不计算。谢谢你的回复,抱歉我没有说得更清楚,我不想再插入更多的代码。我把它改为checkbox,但当超过3个复选框被提示时,就不会出现警告。然后我更改了复选框[],但同样没有任何区别。是的,这些值完全符合它们的要求。我去掉了大部分函数,只是为了确保onclick正常工作并且一个简单的警报正常工作——所以我猜当选中复选框时,“total”变量不会增加您的JavaScript代码引用了document.form1.ckb[I]。因此,您的输入元素需要名称为ckb,而不是checkbox和not checkbox[]。
<script type="text/javascript">
<!--
//initial checkCount of zero
var checkCount=0

//maximum number of allowed checked boxes
var maxChecks=3

function setChecks(obj){
//increment/decrement checkCount
if(obj.checked){
checkCount=checkCount+1
}else{
checkCount=checkCount-1
}
//if they checked a 4th box, uncheck the box, then decrement checkcount and pop alert
if (checkCount>maxChecks){
obj.checked=false
checkCount=checkCount-1
alert('you may only choose up to '+maxChecks+' options')
}
}
//-->
</script>

</head>

<body>
<form>
Option1 <input type="checkbox" id="check1" onclick="setChecks(this)"><br />
Option2 <input type="checkbox" id="check2" onclick="setChecks(this)"><br />
Option3 <input type="checkbox" id="check3" onclick="setChecks(this)"><br />
Option4 <input type="checkbox" id="check4" onclick="setChecks(this)"><br />
Option5 <input type="checkbox" id="check5" onclick="setChecks(this)"><br />
Option6 <input type="checkbox" id="check6" onclick="setChecks(this)"><br />

</form>
</body>