【发布时间】:2012-11-29 08:28:03
【问题描述】:
我有一组使用这种语法的复选框:
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 ;
}
问题来了:
仅当我从输入名称中删除方括号时,检查所有按钮才有效,即name="list" 而不是name="list[]"。我需要括号,否则 PHP 表单处理程序将无法工作。我已经尝试将括号添加到 JS,即onClick="uncheckAll(document.myform.list[])",但这也不起作用。
如何让 JS 和 PHP 玩得很好?
感谢所有响应者。我特别感谢任何参考/解释/jfiddles。
【问题讨论】:
-
在您的输入中添加一个类并取消选中其类的选择框是一种方法。如何通过多选来做到这一点,我不知道。
-
为了让它看起来更好尝试在 echo 中设置 '' 而不是 "" 这样你就不需要所有的 `\`。或使用 HEREDOC
-
尝试在
<input type="reset" value="Uncheck All"/>表单中添加一个reset 按钮,它会满足您的需求。当然,如果你有 other 以外的元素,它们也会被重置 -
@eric.itzhak 我不确定你对所有引用的理解,但我只是一次重复一行,我不觉得这证明了 HEREDOC ://
-
@EliasVanOotegem 好主意!我不知道为什么我没有想到这一点。谢谢!不幸的是,它并没有解决我的另一半问题..
标签: php javascript arrays forms