我有一组使用此语法的复选框:
echo "<form name=\"myform\" method=\"POST\" action=\"csvbuilder.php\">";
echo "<input type=\"checkbox\" name=\"list[]\" value=\"".$res['id']."\" />";
在底部我有一个“全部检查”按钮..
echo "<input type=\"button\" name=\"UnCheckAll\" value=\"Uncheck All\" onClick=\"uncheckAll(document.myform.list)\" />
其中涉及以下JS脚本..
function checkAll(field) {
for (i = 0; i < field.length; i++)
field[i].checked = true ;
}
这是问题所在:
只有当我从输入名称中删除方括号时,check all按钮才有效,即name="list"
而不是name="list[]"
。我需要括号,否则PHP表单处理程序将无法正常工作。我已经尝试将括号添加到JS,即onClick="uncheckAll(document.myform.list[])"
,但这也不起作用。
如何让JS和PHP很好地发挥?
感谢所有响应者。我特别感谢任何参考/解释/ jfiddles。
答案 0 :(得分:1)
您错过了粘贴checkAll
按钮
JS功能:
function checkAll(frm){
var checkBoxes = frm.elements['list[]'];
for (i = 0; i < checkBoxes.length; i++){
checkBoxes[i].checked = (frm.CheckAll.value == "Check All") ? 'checked' : '';
}
frm.CheckAll.value = (frm.CheckAll.value == "Check All") ? "Uncheck All" : 'Check All';
}
的OnClick:
echo "<input type=\"button\" name=\"CheckAll\" value=\"Check All\" onClick=\"checkAll(document.myform)\" />
答案 1 :(得分:1)
可以使用document.myform['list[]']
:
echo "<input type=\"button\" name=\"UnCheckAll\" value=\"Uncheck All\" onClick=\"uncheckAll(document.myform['list[]'])\" />
答案 2 :(得分:0)
试试这个:
function checkAll(fieldName) {
var fields = document.getElementsByName(fieldName);
for (i=0; i<fields.lengh; i++) {
fields[i].checked = true;
}
}
然后使用以下PHP代码段从HTML中调用它:
echo "<input type=\"button\" name=\"UnCheckAll\" value=\"Uncheck All\" onClick=\"uncheckAll('list[]')\" />
请注意,按钮的onClick
- 函数现在调用checkAll
- 函数传递元素名称而不是元素。