<script language="JavaScript">
function toggle(source) {
checkboxes = document.getElementsByName('foo');
for(var checkbox in checkboxes)
checkbox.checked = source.checked;
}
</script>
<input type="checkbox" onClick="toggle(this)" /> Toggle All<br/>
<input type="checkbox" name="foo" value="bar1"> Bar 1<br/>
<input type="checkbox" name="foo" value="bar2"> Bar 2<br/>
<input type="checkbox" name="foo" value="bar3"> Bar 3<br/>
<input type="checkbox" name="foo" value="bar4"> Bar 4<br/>
UPDATE :
El for each...in
La construction ne semble pas fonctionner, du moins dans ce cas, dans Safari 5 ou Chrome 5. Ce code devrait fonctionner dans tous les navigateurs :
function toggle(source) {
checkboxes = document.getElementsByName('foo');
for(var i=0, n=checkboxes.length;i<n;i++) {
checkboxes[i].checked = source.checked;
}
}
1 votes
Si l'on veut que la dégradation se fasse en douceur, le fait de sélectionner "select all" devrait en fait signifier que tous sont sélectionnés, quel que soit leur état individuel. (visite de votre page avec javascript désactivé)
0 votes
Dans Firefox (et peut-être d'autres ?) : Hit
CTRL+SHIFT+K
pour ouvrir la console, puis pâte :$("input:checkbox").attr('checked', true)
et frappezEnter
. Toutes les cases à cocher de la page actuelle devraient maintenant être cochées. Pour décocher changementTrue
aFalse
.