Page 1 sur 1

Checkbox -> récupérer le texte du label dans une var js ?

Posté : 16 mai 2006, 22:25
par didgar
Salut !

J'ai ça :

Code : Tout sélectionner

<p> <label for="rub_6">Premier texte</label><input type="checkbox" id="rub_6" name="id_rubrique[]" value="6" /> <br /> <label for="rub_7">Second texte</label><input type="checkbox" id="rub_7" name="id_rubrique[]" value="7" /> </p>
Le nbre de cases à cocher est indéfini puisque généré à la volée.

Ce que j'aimerais faire :
quand je coche la case dont la value est '6', je récupère "Premier texte" dans une var js et quand je coche la case dont la value est '7', je recupère "Second texte"

La sélection peut être multiple !

A+

Didier

Posté : 16 mai 2006, 22:36
par Cyrano
Ajoute un id à ta balise label avec par exemple une valeur du genre "case".$i de façon à pouvoir pointer sur document.getElementById()
Avant la ligne de récupération de ton JavaScript , tu reconstruis l'identifiant du label avec "case" + la valeur de la case récupérée :
var numlabel = 'case'+ ta_case.value;
var txt_label = document.getElementById(numlabel).nodeValue;
(ou quelque chose de ce style, à vérifier.)

Posté : 16 mai 2006, 22:45
par didgar
.../...
(ou quelque chose de ce style, à vérifier.)
Salut !

J'essaie ça demain au taf ;-)

Merci !

Didier

Posté : 17 mai 2006, 10:14
par didgar
Salut !

Je suis en train d'essayer !

Voici le bout de code

Code : Tout sélectionner

<label id="case_63" for="rub_63" style="padding-left:20px;"><input type="checkbox" id="rub_63" name="id_rubrique[]" onclick="recup_label(this.value);" value="63" />Toto</label><br /> <label id="case_43" for="rub_43" style="padding-left:20px;"><input type="checkbox" id="rub_43" name="id_rubrique[]" onclick="recup_label(this.value);" value="43" />Titi</label><br /> <label id="case_69" for="rub_69" style="padding-left:20px;"><input type="checkbox" id="rub_69" name="id_rubrique[]" onclick="recup_label(this.value);" value="69" />Tata</label>
Voici la fonction js

Code : Tout sélectionner

function recup_label(id) { var numlabel = 'case_'+id; var txt_label = document.getElementById(numlabel).nodeValue; alert(txt_label); }
Je pensais avoir tou bien fait mais il m'affiche Null :cry:

Si quelqu'un a une petite idée ...

Merci d'avance.

A+

Didier

Posté : 17 mai 2006, 10:22
par didgar
Salut !

J'ai trouvé c'est bon !

Il faut remplacer

Code : Tout sélectionner

var txt_label = document.getElementById(numlabel).nodeValue;
par

Code : Tout sélectionner

var txt_label = document.getElementById(numlabel).textContent;
Ca pourra peut-être servir à quelqu'un.

A+

Didier