2010-03-09 88 views
2

我在列標題中有複選框。其功能是檢查或取消選中該列中的所有複選框。如果選中了行復選框並說delete,則可以從dataTable中刪除該行。如何隱藏全選,清除所有複選框

如果在其他表中使用行對象作爲外鍵,我把' - '放在該行而不是複選框,表示該行不能被刪除。

在這些情況下,如果所有行都具有「 - 」,則不需要具有標題複選框。如果沒有任何要刪除的內容,如何以編程方式隱藏此「全選|全部清除」複選框。

它甚至會最好隱藏「刪除」按鈕,如果沒有要作出選擇。

什麼是解決上述方案中的最佳實踐。我重視,我現在用的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

完整的示例:

<!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> 
+0

我試過這樣但它不起作用 Achaius 2010-03-09 07:13:51

0

你可以寫檢查所有lik E本

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,則有ATLEAST一個複選框選中。

要隱藏檢查所有複選框,當沒有孩子的複選框,可以在類附加到子複選框和做這樣的事情

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

我試着像但總是標題不是渲染 Achaius 2010-03-09 13:10:48