【发布时间】:2013-11-27 17:40:41
【问题描述】:
我有一个数据表,其中每一行都有一个复选框。我正在尝试将select-all 功能添加到这组复选框中,为此我创建了以下函数:
function selectAll() {
$(':checkbox').each(function() {
this.checked = true;
});
}
这适用于选择当前可见的所有复选框,但是,不会选择数据表其他页面上的复选框。我知道这些复选框通常存在问题,因为要提交表单并包含这些复选框,我必须添加以下函数:
$('form').submit(function() {
oTable1 = $('#mytable').dataTable();
$(oTable1.fnGetHiddenNodes()).find('input:checked').appendTo(this);
});
所以我怀疑为了选中这些复选框,我必须以某种方式将它们附加到 DOM,至少是暂时的,将它们选中,然后将它们从 DOM 中删除。或者有什么更简单的我可以做的吗?
【问题讨论】:
-
你应该告诉我们这些隐藏的复选框一旦被选中应该做什么?添加一个元素来检查它然后删除它没有多大意义
-
复选框是表单的一部分。因此,当提交表单时,第二个代码块将它们添加到 DOM,以便它们将与表单的其余部分一起提交。我在这里要问的是如何修改第一个代码块,使其适用于隐藏节点和可见节点。
-
您确定数据表其他页面中的复选框在 DOM 中吗?数据表小部件可能只是将数据保存在内存中,但仅将当前页面放入 DOM 中。
-
$('.checkbox:hidden').prop('checked', true),这行得通吗?
-
更简单:
$(":checkbox").prop('checked', true)
标签: javascript jquery jquery-datatables