Cocher / décocher toutes les cases d'une table
J'ai un tableau avec des informations. La première colonne de la table ont des cases à cocher.
Je peux ajouter/supprimer des lignes avec un bouton en cochant les cases. Le problème que j'ai maintenant est de savoir comment puis-je sélectionner ou désélectionner toutes les cases à l'aide de la case à cocher sur l'en-tête.
Voici mon code:
<HTML>
<HEAD>
<TITLE> Add/Remove dynamic rows in HTML table </TITLE>
<SCRIPT language="javascript">
function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var cell1 = row.insertCell(0);
var element1 = document.createElement("input");
element1.type = "checkbox";
element1.name="chkbox[]";
cell1.appendChild(element1);
var cell2 = row.insertCell(1);
cell2.innerHTML = rowCount;
var cell3 = row.insertCell(2);
cell3.innerHTML = rowCount;
var cell4 = row.insertCell(3);
cell4.innerHTML = rowCount;
var cell5 = row.insertCell(4);
cell5.innerHTML = rowCount;
var cell6 = row.insertCell(5);
cell6.innerHTML = rowCount;
}
function deleteRow(tableID) {
try {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
for(var i=1; i<rowCount; i++) {
var row = table.rows[i];
var chkbox = row.cells[0].childNodes[0];
if(null != chkbox && true == chkbox.checked) {
table.deleteRow(i);
rowCount--;
i--;
}
}
}catch(e) {
alert(e);
}
}
function checkAll(formname, checktoggle)
{
var checkboxes = new Array();
checkboxes = document[formname].getElementsByTagName('input');
for (var i=0; i<checkboxes.length; i++) {
if (checkboxes[i].type == 'checkbox') {
checkboxes[i].checked = checktoggle;
}
}
}
</SCRIPT>
</HEAD>
<BODY>
<INPUT type="button" value="Add Row" onclick="addRow('dataTable')" />
<INPUT type="button" value="Delete Row" onclick="deleteRow('dataTable')" />
<TABLE id="dataTable" border="1">
<tr>
<th><INPUT type="checkbox" name="chk[]"/></th>
<th>Make</th>
<th>Model</th>
<th>Description</th>
<th>Start Year</th>
<th>End Year</th>
</tr>
</TABLE>
</BODY>
</HTML>
source d'informationauteur EM10 | 2013-10-09
Vous devez vous connecter pour publier un commentaire.
Fait votre
checkAll(..)
est suspendu sans aucun attachement.1) Ajouter
onchange
gestionnaire d'événement2) Modifié le code pour gérer cocher/décocher
mise à Jour de Violon
JSBin
Ajouter événement onClick à la case où vous voulez, comme ci-dessous.
En JavaScript, vous pouvez écrire selectall fonction
Cela permet de sélectionner et de désélectionner toutes les cases:
Démo
Mise à jour:
Vous pouvez utiliser querySelectAll directement sur la table pour obtenir la liste de cases à cocher au lieu de rechercher l'ensemble du document, mais Il pourrait ne pas être compatible avec les anciens navigateurs de sorte que vous devez vérifier que le premier:
Ou pour être plus précis pour la fourniture d'une structure html dans l'OP question, ce qui serait plus efficace lorsque vous sélectionnez les cases à cocher il va accéder directement à la place de la recherche pour:
Démo
Cette solution est préférable car il est plus court et ne pas utiliser une boucle.
id="checkAll"
est l'en-tête de colonneEssayez ceci: