| cases à cocher: cocher tout un groupe de cases |
| yohann - 20/03/07 11:12 | Profil | Site web |
Bonjour, j'ai trouvé un script fonctionnant très bien pour avoir un bouton qui coche tout un groupe de cases, voila le script:
vu sur http://webmaster.lycos.fr/tips/987667069/
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var checkflag = "false";
function check(field) {
if (checkflag == "false") {
for (i = 0; i < field.length; i++) {
field.checked = true;}
checkflag = "true";
return "Tout décocher"; }
else {
for (i = 0; i < field.length; i++) {
field[i].checked = false; }
checkflag = "false";
return "Tout cocher"; }
}
// End -->
</script> |
il fonctionne bien mais, pour des cases ayant un nom de type name = "nom"
or pour des raisons de traitement en php mon groupe de cases d'appelle plutôt
"nom[]"
et là c'est le drame, ça ne fonctionne plus.
comment adapter ce script pour qu'il fonctionne avec mes cases?
on m'a parler de la fonction getElementByName(), mais je n'arrive pas à l'utiliser (et je l'ai pas trouvé dans la doc).
Je précise que je suis un débutant complet en javascript (j'ai 2 ou 3 copier coller de script a mon actif) par contre j'ai des notion de progra en générale.
pouvez vous m'aidez, je vous en serait reconnaissant.
Yohann
|
| NewB - 20/03/07 11:26 | Profil |
C'est marrant j'ai exactement le même probleme que toi
au même moment ^^
j'ai trouvé ma solution ici même :
http://www.toutjavascript.com/forums/index.php?topic=13275
byby
|
| NewB - 20/03/07 11:30 | Profil |
allez tiens je te file meme le script :
id = 1 : ca coche tout
id = 0 : ca décoche tout
function cocher(id)
{
var tab = document.getElementsByName("checkbox[]");
for (var i=0; i<tab.length; ++i)
{
if(id == 1)
{
tab[i].checked = true;
}
else
{
tab[i].checked = false;
}
}
}
|
| sprayart - 20/03/07 13:42 | Profil | Site web | email |
Bonjour,
en passant true ou false tu peux gagner quelques instructions A+
|
| yohann - 20/03/07 14:43 | Profil | Site web |
trop merci NewB!!!
et un peu merci sprayart pour l'optimisation
|
| yohann - 20/03/07 18:35 | Profil | Site web |
la nouvelle version de ma fonction (un bouton qui switch tout cocher tout décocher)
4 function check()
5 {
6 var tab = document.getElementsByName("TECHNICIEN[]");
7 if (checkflag == "false")
8 {
9 for (i = 0; i<tab.length; ++i)
10 {
11 tab[i].checked = true;
12 }
13 checkflag = "true";
14 return "Tout décocher";
15 }
16 else
17 {
18 for (i = 0; i < tab.length; ++i)
19 {
20 tab[i].checked = false;
21 }
22 checkflag = "false";
23 return "Tout cocher";
24
|
Me reste un probleme j'aimerai que TECHNICIEN[] soit un parametre de la fonction pour que ce script soit réutilisable pour d'autre cases à cocher, peut on passer un tableau comme parametre en javascript?
comment on fait?
à chaque fois je suis obligé de le rentrer en dur.
Enfin j'ai qd même un truc fonctionnel en attendant
Merci a tous Javascripteux du forum i love you!
|
| rick - 20/03/07 19:25 | Profil |
salut.
function check(checkboxname) {
var tab = document.getElementsByName(checkboxname+"[]");
....
}
|
ca marche? ( au pif la vraiment )
Maybe today is a good day to die |
| sprayart - 21/03/07 10:53 | Profil | Site web | email |
salut.
function check(checkboxname) {
var tab = document.getElementsByName(checkboxname);
....
}
ca marche? ( au pif la vraiment aussi)
|
| yohann - 21/03/07 11:05 | Profil | Site web |
salut merci pour vos réponses:
@ sprayart: c'était en effet ma première idée mais cela n'a pas fonctionné.
@rick: j'ai pas essayé pourquoi pas! je vous donne le feedback tt à l'heure
|
| yohann - 21/03/07 12:33 | Profil | Site web |
OK alors encore merci à tout les 2 en fait c'est moi qui suit nul!
vos 2 solutions fonctionnent!
mais apparement javascript n'aime pas qu'on passe les argument de type string entre double quote ".
donc:
echo ' <input type=button value="Tout cocher" OnClick="this.value=check(\'TECHNICIEN[]\')"> ';
fonctionne mais
echo ' <input type=button value="Tout cocher" OnClick="this.value=check("TECHNICIEN[]")"> ';
ne fonctionne pas.
remarque que c'est peut être due au fait que comme c'est dans un submit les " n'était pas interpretés correctement
encore merci à tous
|
| sprayart - 21/03/07 15:43 | Profil | Site web | email |
re bonjour,
l'erreur vient que tu as imbriqué des double-quote dans des double quote
OnClick="this.value=check("TECHNICIEN[]")"
et ça il aime pas trop. Bon courage
|
| yohann - 21/03/07 16:13 | Profil | Site web |
il me semblait aussi...
bon problème résolu, si quelqu'un passe par la le script poster si dessus fonctionne parfaitement, et fait attention au double quote...
|
| 11 réponses - Page : 1 |