Javascript et checkbox
Résolu
Lilouse64
Messages postés
99
Date d'inscription
Statut
Membre
Dernière intervention
-
Lilouse64 Messages postés 99 Date d'inscription Statut Membre Dernière intervention -
Lilouse64 Messages postés 99 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un soucis en javascript. Je souhaite utiliser des checkbox construis avec php dans une boucle for (avec des nom en fonction de la boucle du coup. Pour chaque ligne de mon for, je créais 2 checkbox et je souhaite au final que si on coche une case d'une ligne si l'autre était déja coché, ça la décoche.
Voici ma fonction javascript appelé lorsqu'on clic sur un des checkbox :
function cbcritere(cb, ligne){
var namecb = cb + "_" + ligne;
var cbselect= "document.ajoutconcours." + namecb +".checked";
alert (cbselect);
if (cbselect){
alert ("un chekbox vient d\'être coché");
} else{
alert ("un chekbox vient d\'être décoché");
}
}
cb est un texte qui représente l'un des 2 checkbox de la ligne et ligne un entier pour la ligne en question.
namcb est le nom de ma checkbox
lorsque je fais if(document.ajoutconcours.namecb.checked), ma fonction ne s'exécute pas car elle cherche un élement de mon formulaire ajoutconcours qui s'appel namecb alors que namecb est une variable et non le nom en lui même...
j'ai donc créé une variable intermédiaire pour recuperer la valeur de namecb mais la du coup mon cbselect vaut document.ajoutconcours.cb1_1.checked par exemple au lieu de 1 ou 0.
Es ce que vous avez une solution pour que je puisse faire un if(document.ajoutconcours.cb1_1.checked)
en sachant que cb1_1 est dans une variable ?
Merci d'avance
J'ai un soucis en javascript. Je souhaite utiliser des checkbox construis avec php dans une boucle for (avec des nom en fonction de la boucle du coup. Pour chaque ligne de mon for, je créais 2 checkbox et je souhaite au final que si on coche une case d'une ligne si l'autre était déja coché, ça la décoche.
Voici ma fonction javascript appelé lorsqu'on clic sur un des checkbox :
function cbcritere(cb, ligne){
var namecb = cb + "_" + ligne;
var cbselect= "document.ajoutconcours." + namecb +".checked";
alert (cbselect);
if (cbselect){
alert ("un chekbox vient d\'être coché");
} else{
alert ("un chekbox vient d\'être décoché");
}
}
cb est un texte qui représente l'un des 2 checkbox de la ligne et ligne un entier pour la ligne en question.
namcb est le nom de ma checkbox
lorsque je fais if(document.ajoutconcours.namecb.checked), ma fonction ne s'exécute pas car elle cherche un élement de mon formulaire ajoutconcours qui s'appel namecb alors que namecb est une variable et non le nom en lui même...
j'ai donc créé une variable intermédiaire pour recuperer la valeur de namecb mais la du coup mon cbselect vaut document.ajoutconcours.cb1_1.checked par exemple au lieu de 1 ou 0.
Es ce que vous avez une solution pour que je puisse faire un if(document.ajoutconcours.cb1_1.checked)
en sachant que cb1_1 est dans une variable ?
Merci d'avance
A voir également:
- Javascript et checkbox
- Telecharger javascript - Télécharger - Langages
- A javascript error occurred in the main process - Forum Handicap / Accessibilté
- Erreur #125 javascript - Forum Mozilla Firefox
- Afficher un tableau javascript en html ✓ - Forum Javascript
- Javascript arrondi - Forum Javascript
3 réponses
Je viens de trouver une alternative à mon problème au lieu d'utiliser le nom je prend le numéro de l'élément du formulaire :
if (cb=="cbexige"){
numelement=2* ligne-1+2;
}
if (cb == "cbrefuse"){
numelement=2* ligne+2;
}
if (document.forms['ajoutconcours'].elements[numelement].checked){
il y a 3 éléments avant mes checkbox et comme la numérotation des éléments commence à 0 j'ai dut mettre un +2.
Le problème avec cette méthode et si je rajoute par la suite d'autre éléments à mon formulaire il faudra que je change ma formule pour calculer le numéro de l'élément du coup je suis toujours à la recherche d'une solution à mon premier problème mais j'ai toujours cette solution en attendant.
if (cb=="cbexige"){
numelement=2* ligne-1+2;
}
if (cb == "cbrefuse"){
numelement=2* ligne+2;
}
if (document.forms['ajoutconcours'].elements[numelement].checked){
il y a 3 éléments avant mes checkbox et comme la numérotation des éléments commence à 0 j'ai dut mettre un +2.
Le problème avec cette méthode et si je rajoute par la suite d'autre éléments à mon formulaire il faudra que je change ma formule pour calculer le numéro de l'élément du coup je suis toujours à la recherche d'une solution à mon premier problème mais j'ai toujours cette solution en attendant.
J'ai trouvé une solution :
Je donne à mon checkbox un id ayant la même valeur que le nom et j'utilise getElementById pour accéder à la checkbox voulu.
Du coup ma fonction deviens :
Je donne à mon checkbox un id ayant la même valeur que le nom et j'utilise getElementById pour accéder à la checkbox voulu.
Du coup ma fonction deviens :
function cbcritere(cb, ligne){ var namecb = cb + "_" + ligne; if (cb=="cbexige"){ var namecbopose="cbrefuse_" + ligne; } if (cb == "cbrefuse"){ var namecbopose="cbexige_" + ligne; } if (document.getElementById(namecb).checked){ document.getElementById(namecbopose).checked=false; } }