不幸的是,仍然存在未实现批量/批量编辑的表单。什么可能非常烦人,特别是当你有一个超过100条记录的表格,你要更新。在我的情况下,它有大约1000条记录,每条记录都有一个应该检查的复选框,目前它们都没有被选中。
因此我尝试运行一个即时的javascript来检查那些盒子。但是,在运行javascript后,它确实在所有复选框中显示了一个复选标记。提交表单后,第一个未选中的复选框 - 显示为已选中的复选框 - 返回到原始状态(未选中)。
我从FireFox控制台执行的动态javascript。
var x = document.querySelectorAll('input[name^="example"][type="checkbox"]'), i = 0;
for (i = 0; i < x.length; i++) {
x[i].checked = true;
x[i].value = true; // I also tried 'on'
}
选中和取消选中复选框(手动)的初始标记:
<input name="example[1]" checked="" type="checkbox">
<input name="example[2]" type="checkbox">
据我所知,checked
属性仅用于可视化表示,允许程序员在元素初始化时显示一个复选框。另外要注意的是,当您取消选中一个复选框时,元素将不会更改。
我使用正确的方法吗?如果是这样,我做错了什么?或者我是否要使用不同的方法来实现我的目标,我该怎么办?
答案 0 :(得分:2)
尝试使用以下内容: -
x[i].setAttribute('checked', 'checked');
如果在运行原始代码后检查输入,则可以看到它仅设置值属性
<input name="example[2]" type="checkbox" value="true">
这与手动点击已设置checked属性的复选框的html不同。