以编程方式选中提交Web表单的复选框



遗憾的是,仍然有一些表单没有实现批量/批量编辑。这可能非常令人讨厌,尤其是当你有一个超过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属性只是用于可视化表示,允许程序员在初始化元素时显示复选框。同样值得注意的是,当您取消选中复选框时,元素不会改变。

我用的方法正确吗?如果是这样,我做错了什么?或者我必须使用不同的方法来实现我的目标,我该怎么办?

尝试使用以下命令:-

x[i].setAttribute('checked', 'checked');

如果你在运行原始代码后检查输入,你可以看到它只设置了值属性

<input name="example[2]" type="checkbox" value="true">

这与手动单击复选框的html不同,在html中设置了选中的属性。

最新更新