如何隐藏全部检查,清除所有复选框

时间:2010-03-09 04:59:03

标签: javascript jquery

我在列标题中有复选框。其功能是选中或取消选中该列中的所有复选框。如果选中行复选框并说删除,则可以从dataTable中删除该行。

如果行对象在某个其他表中用作外键,则在该行中放入“ - ”而不是复选框,表示该行不能删除。

在这些情况下,如果所有行都有“ - ”,则不需要使用标题复选框。如果没有要删除的内容,如何以编程方式隐藏此“全部检查|全部清除”复选框。 / p>

如果没有选择,可以隐藏“删除”按钮。

解决上述问题的最佳做法是什么?我附上了我正在使用的javascript。

<script type="text/javascript">
var tableId = '#user\\:userList';
jQuery(document).ready(function() {
    jQuery('#selectAll').click(function() {
        jQuery(tableId).find("input[type='checkbox']").attr('checked', jQuery('#selectAll').is(':checked'));
    });
});
</script>

2 个答案:

答案 0 :(得分:2)

完整示例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
  var tableId = "#box";
  $("#cb").click(function() {
    if ($(this).is(":checked")) {
      $(tableId).find("input:checkbox").attr("checked", "checked");
    } else {
      $(tableId).find("input:checkbox").removeAttr("checked");
    }
  });
});
</script>
</head>
<body>
<input type="checkbox" id="cb">all
<hr>
<div id="box">
<input type="checkbox">one<br>
<input type="checkbox">two<br>
<input type="checkbox">three<br>
</div>
</body>
</html>

答案 1 :(得分:0)

你可以像这样写支票

jQuery(document).ready(function() {
    jQuery('#selectAll').click(function() {
        jQuery(tableId).find("input:checkbox").attr('checked', $(this).attr("checked"));
    });
});

要查找是否选中任何复选框,您可以使用

jQuery(tableId).find("input:checkbox:checked").length

如果它大于0则检查至少一个复选框。

要在没有子复选框时隐藏全部选中复选框,您可以将一个类附加到子复选框并执行类似这样的操作

$("input:checkbox.classname").length