2010-03-09 16 views
2

Je suis en train de cocher l'en-tête de la colonne. La fonction de ceci est de cocher ou de décocher toutes les cases à cocher dans cette colonne. Si la case à cocher de la ligne est cochée et dire supprimer, cette ligne peut être supprimée de la table de données.Comment masquer tout cocher, décocher toutes les cases

Si l'objet ligne est utilisé dans une autre table en tant que clé étrangère, insérez '-' dans cette ligne à la place de la case à cocher indiquant que cette ligne ne peut pas être supprimée.

Dans ces cas, si la ligne est "-", il n'est pas nécessaire d'avoir la case à cocher En-tête pour masquer par programmation cette case à cocher "Tout supprimer | Effacer tout" s'il n'y a rien à supprimer.

Il serait même préférable de cacher la « Supprimer » bouton s'il n'y a pas de sélection à faire.

Quelles sont les meilleures pratiques pour faire face au scénario ci-dessus. Je joins le javascript que je me sers.

<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> 

Répondre

2

Exemple complet:

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

J'ai essayé comme ça mais ça ne fonctionne pas Achaius

0

Vous pouvez écrire vérifier tout e ce

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

Pour trouver si une case est cochée, vous pouvez utiliser

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

et si elle est supérieure à 0, il y a au moins une case cochée.

Pour masquer la vérification toutes case quand il n'y a pas de cases à cocher enfant, vous pouvez joindre une classe aux cases enfants et faire quelque chose comme ça

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

J'ai essayé comme ceci mais toujours l'en-tête n'est pas rendu Achaius

Questions connexes