目前我有两张桌子
我在左上角的复选框中选择了所有功能,但是点击一个全选突出显示BOTH表中的所有复选框,而我只希望在特定的“全部检查”中选中所有框。
此外,当我选择全部并单击其中一个方向按钮<或者>,它将所有行拖动得很好但是用它拖动标题如下所示:
我的JQuery目前非常简单,但我显然错过了一些东西 -
$('#select-all').click(function (event) {
if (this.checked) {
// Iterate each checkbox
$(':checkbox').each(function () {
this.checked = true;
});
}
else
// Iterate each checkbox
$(':checkbox').each(function () {
this.checked = false;
});
});
'select-all'是'tarifs de quittancement'中select-all复选框的ID。
感谢任何帮助
修改
我的JQuery for the gt;按钮代码如下:
$("#move-to-1").on("click", function () {
var selected = $("#table2").find("input:checked");
selected.each(function (idx, elem) {
$(elem).closest("tr").detach().appendTo($("#table1 tbody"));
});
});
这可以很好地将所有表从一个表移动到另一个表,但我不希望包含select-all复选框/表头的行与其余的行数据一起移动。怎么办呢?
再次感谢。
进一步修改
现在它已全部排序,除了一个小错误,选择一个复选框行(不是全选)并移动它<或者>导致所有行被移动。
正在使用的JQuery:
$('#move-to-1').on('click', function () {
var selected = $('#table2').find('input:checked');
selected.each(function (idx, elem) {
$(elem).closest('tbody').find('tr').detach().appendTo($("#table1 tbody"));
$('input[type=checkbox]').attr('checked', false);
});
});
$('#select-all').click(function (event) {
$(this).closest('table').find(':checkbox').prop('checked', this.checked);
});
答案 0 :(得分:3)
您只需要修改当前表格中的复选框。由于您没有显示您的标记,因此很难猜出正确的选择器可能看起来如何,或者您是否正在使用表格,但尝试如下:
$('#select-all').click(function (event) {
$(this).closest('table').find(':checkbox').prop('checked', this.checked);
});
更新:
要解决您的第二个问题,假设您已使用<thead>
和<tbody>
部分将这些表格中的标题与正文分开,您可以调整您的选择器:
$('#move-to-1').on('click', function () {
var selected = $('#table2 tbody').find('input:checked');
selected.each(function (idx, elem) {
$(elem).closest('tr').detach().appendTo($("#table1 tbody"));
});
});
答案 1 :(得分:1)
$('#select-all').click(function (event) {
// mention the table
var table = $('selector_to_your_table');
if (this.checked) {
// Iterate each checkbox
table.find(':checkbox').each(function () {
this.checked = true;
});
}
else
// Iterate each checkbox
table.find(':checkbox').each(function () {
this.checked = false;
});
});
最新版本的jQuery :checkbox
已被弃用。的 See here. 强>
而不是:checkbox
使用input[type=checkbox]
。
答案 2 :(得分:0)
而不是:
$(':checkbox').each(function () {
this.checked = true;
});
执行:
$('some_sort_of_selector :checkbox').attr('checked', true);
您不需要each()
循环 - jQuery会自动执行。您需要某种选择器来限制更改哪些复选框。
我注意到你有#select-all
- 然而你说你有两个全选复选框。你不能这样做。 ID必须是唯一的。