【发布时间】:2018-05-10 19:47:31
【问题描述】:
我有一个显示一些数据的 HTML 表格。我在尝试进行多项选择时遇到问题。
如果我点击<th> 上的复选框(选择所有行),tbody > tr 中的所有复选框都会被选中 - 正如预期的那样。我再次单击并全部取消选择 - 正如预期的那样。如果我再次单击 th 复选框,它不会选择 tbody 内的任何内容。我该如何解决这个问题?
$(document).ready(function() {
toggleDeleteButton = function() {
// alert($('.selector:checked').length);
if ($('.selector:checked').length) {
$('.btn-delete-selected').removeClass('disabled');
} else {
$('.btn-delete-selected').addClass('disabled');
}
}
function update_selection(obj) {
var state = obj.checked;
if (state === undefined) {
state = false;
}
$(obj).closest('table').find('input[type=checkbox][disabled!="disabled"]').attr('checked', state);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="table">
<thead>
<tr>
<th class=""><input onchange="update_selection(this); toggleDeleteButton();" type="checkbox"></th> // Selecting all
<th class="">
<a href="#">#</a>
</th>
<th class="">
<a href="#">Data #1</a>
</th>
<th class="">
<a href="#">Data #2</a>
</th>
</tr>
</thead>
<tbody>
<tr class="tr even incomplete ">
<td class="center"><input class="selector" value="57696" onchange="toggleDeleteButton();" type="checkbox"></td>
<td class="center">3</td>
<td class="text-right">£ 1.00</td>
<td class="center">Foo</td>
</tr>
<tr class="tr even incomplete ">
<td class="center"><input class="selector" value="57698" onchange="toggleDeleteButton();" type="checkbox"></td>
<td class="center">4</td>
<td class="text-right">£ 2.50</td>
<td class="center">FooBar</td>
</tr>
<tr class="tr even incomplete ">
<td class="center"><input class="selector" value="57720" onchange="toggleDeleteButton();" type="checkbox"></td>
<td class="center">5</td>
<td class="text-right">£ 3.00</td>
<td class="center">Bar</td>
</tr>
</tbody>
</table>
【问题讨论】:
标签: javascript jquery html checkbox html-table