我有一个生成的项目列表:
<input type="checkbox" name="sacb" onchange="selAll();" title="select all"/>
<?php
while($row = mysql_fetch_array($res)){
echo "<div><input type='checkbox' name='cb' value='$row[id]'>$row[item]</div>";
}
?>
脚本
function selAll(){
var s = document.form.sacb;
var t = document.form.cb;
for(var i=0; i<t.length; i++){
t[i].checked = s.checked;
}
}
这样可以选择/取消选中所有复选框。
我想提交此表单,其中要删除多个/所有选定项目。但我没有得到所有选中的复选框。我搜索并发现我需要将我的PHP代码替换为:
<input type='checkbox' name='cb[]' value='$row[id]'>$row[item]
但是一旦我这样做,脚本就无法选中所有复选框。如何解决这个问题呢?任何解决方案?
答案 0 :(得分:1)
您不能使用点表示法来访问名称中带括号的元素,因此您必须使用元素集合检索它们
function selAll(){
var s = document.form.sacb;
var checkboxes = document.form.elements['cb[]'];
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = s.checked;
}
}
答案 1 :(得分:1)
您可以从以下javascript
更新所选复选框请添加您的代码以选择所选数组,以获取简单的javascript 在这个例子中,我使用jquery来获取复选框数组并检查它是否被选中
var field, fields = $('.edit_user_notifi :checkbox'), i = fields.length;
var notification_status = '';
while (i--) {
field = fields[i];
if(notification_status == '')
{
if (field.checked) {
notification_status = field.id+'~1';
} else {
notification_status = field.id+'~0';
}
}else{
if (field.checked) {
notification_status = notification_status +','+ field.id+'~1';
}else{
notification_status = notification_status +','+ field.id+'~0';
}
}
}
只需改变一点逻辑就可以得到简单的javascript,或者如果你使用jquery会更好。