我正在使用此脚本检查并取消选中所有复选框:
$('#checkall').click(function () {
var checked = $(this).data('checked');
$('.chkall').find(':checkbox').attr('checked', !checked);
$(this).data('checked', !checked);
});
效果很好,但是在&#34之后我取消选中几个选中的复选框;检查所有"然后点击"取消选中所有"并且"检查所有"再次,不再检查那些以前未选中的复选框。帮助会很棒!非常感谢你!
答案 0 :(得分:8)
这可能是正确的方法..
使用prop代替attr
并将div中的复选框列表分组,仅用于组织目的。也可以原样使用checked
,不要否定它。
$(document).ready(function() {
$('#checkall').click(function() {
var checked = $(this).prop('checked');
$('#checkboxes').find('input:checkbox').prop('checked', checked);
});
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="checkall" />
<label for="checkall">check / uncheck all</label>
<br/>
<br/>
<div id="checkboxes">
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
</div>
答案 1 :(得分:7)
$('#checkall').click(function(){
var d = $(this).data(); // access the data object of the button
$(':checkbox').prop('checked', !d.checked); // set all checkboxes 'checked' property using '.prop()'
d.checked = !d.checked; // set the new 'checked' opposite value to the button's data object
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='checkall' data-checked='false'>check/uncheck all</button>
<input type=checkbox>
<input type=checkbox>
<input type=checkbox>
<input type=checkbox>
<input type=checkbox>
根据触发按钮,我猜到了HTML的样子,但我不知道你最初是如何在其上设置data
的。希望这是你编码的方式。如果没有,请告诉。
答案 2 :(得分:2)
您只需要获取所有复选框并进行全部检查。
SELECT Customer_Name,
Sub_Customer_Name,
Post_Type,
Equipment_Size,
SUM(Qty),
Trans_Mode,
Address_1,
City,
ST,
Postal_Code,
Country,
PortRampID,
PortRamp_Name,
PortRamp_Code,
Ship_Line_Name,
AvailableDate,
ExpiredDate
FROM YourTable
GROUP BY Customer_Name,
Sub_Customer_Name,
Post_Type,
Equipment_Size,
Trans_Mode,
Address_1,
City,
ST,
Postal_Code,
Country,
PortRampID,
PortRamp_Name,
PortRamp_Code,
Ship_Line_Name,
AvailableDate,
ExpiredDate
&#13;
$('#checkall').click(function() {
var _this = this;
$('#checkboxes').find('input[name="checkAll"]').each(function() {
if ($(_this).is(':checked')) {
$(this).prop('checked', true);
} else {
$(this).prop('checked', false);
}
});
});
&#13;