cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 10 déc. 2006 à 17:58
<script type="text/javascript">
function copier()
{
for ( var n=0;n<3;n++ )
{
if ( document.getElementById("MaListe _"+n).checked )
{
document.getElementById("MonLabel").innerHTML=document.getElementsByTagName("label")[n].innerHTML;
}
}
}
</script>
----
<label for="MaListe _0">TEXTE_1</label>,
<label for="MaListe _1"> TEXTE_2</label>,
<label for="MaListe _2"> TEXTE_3</label>,
texte du label
on peut probablement faire autrement, mieux sans aucun doute...
mais franchement... tu vas au delà d'ennuis :
les caractères spéciaux ( espace : ... sont interdits dans les name, les id... )
il me semble anormal de traiter le click sur un objet au niveau de son
arrière-arrière-grand parent ( onclick label ou radio ==> onclick
td,tr,tbody,table ) + la boucle ( inutile ) pour tester quel bouton
radio est coché + nbr radio en dur (3) ...
tel que c'est ici, ça signifie qu'il n'y a pas d'autres "label" dans la page
sinon il faudra modifier le contenu de la variable n dans la fonction copier()
attention à la maintanance donc.
essayes de convaincre ceux qui génèrent ce html de faire les choses correctement :
id sur label, onclick sur radio, name et id conformes, mettre un
formulaire...
ce n'est que mon avis... et il ne vaut pas grand chose.
SuperBouly
Messages postés410Date d'inscriptiondimanche 1 février 2004StatutMembreDernière intervention 8 mai 2010 9 déc. 2006 à 11:24
OK, Je me suis exprimé de façon floue.
une radioButtonList est un controle serveur ASP.Net qui se traduit sur le navigteur-client par une liste de controles à,cocher
<label for= "monItemRadio" > TEXTE </label>
----etc...
et agissant façon bascule (un seul restre coché)
mon problème est d'ecrire une commande compatible avec Firefox pour transférer "TEXTE" dans un label "MonLabel".
l'instruction :
document.getElementById(monLabel).innerHTML ='TEXTE' ; conviendrait, mais je dois faire une instruction générale.
l'intruction suivante fonctionne sous IE6
document.getElementById(monLabel).innerHTML=document.getElementById(MonItemdemaListe).parentNode.innerText ;
que mettre sous firefox?
voilà la question
@+Gilles
Vous n’avez pas trouvé la réponse que vous recherchez ?
ça ne fonctionne pas du tout avec IE !
donc je vais savoir ne pas le faire fonctionner avec FF.
<hr />
Cordialement Bul [
mon Site ] [ =Bul
M'écrire ]
<hr />
</script>
Ca, ça marche.
Et c'est la table qui reçoit l'attribut "onclick". Il est probable que le parentNode désigne la balise <td> qui contient l'élément de liste et son "label for", donc , pour IE6, Tout s'expliquerait.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 10 déc. 2006 à 10:34
j'avoue que j'aurais fait cela de manière différente
pour être "détaché" de la structure de la page
( parentNode... )
un ch'tit exemple ( j'ai sucré table,tr,td... pour
ici, car "inutile" )
<script language="JavaScript" type="text/JavaScript">
function copier(rad)
{
document.getElementById("MonLabel").innerHTML=document.getElementById("lab"+rad.value).innerHTML;
}
</script>
il y a 5874 manières de faire
par exemple :
mettre le label dans un autre td
gérer le onclick sur le td du radio
on obtient rowIndex, le n° de ligne et
cellIndex, le n° de colonne cliqués ==>
on détermine facilement où est le texte
( peut être pas dans un label ).
si tu as d'autres contraintes, goûts...
dis nous, on adaptera.
SuperBouly
Messages postés410Date d'inscriptiondimanche 1 février 2004StatutMembreDernière intervention 8 mai 2010 10 déc. 2006 à 15:37
merci pour ton code, il va surement me servir. Cependant, ici, ce n'est pas moi qui crée le code html, ni la table, mais le serveur, au vu des controles et instructions-serveur que je lui envoie.
Ici, je n'arrive pas à trouver l'instruction qui dote les items <gras>de l'attribut "onclick", je ne possède que l'instruction pour la RadiobuttonList en entier, donc, coté client, que pour la table qui sert de contener.
Alors, soit je vais trouver (hem...), soit, je dois trouver autrechose en javaScript.
Gilles
SuperBouly
Messages postés410Date d'inscriptiondimanche 1 février 2004StatutMembreDernière intervention 8 mai 2010 11 déc. 2006 à 10:14
Merci pour ce nouveau code; il me permet de me tirer d'affaire, même s'il présente les inconvénients que tu annonces.
Cependant, note que personne n'est maitre du code renvoyé par le serveur. Dans son principe, un controle serveur (par exemple une radioButtonlist) est interprèté par le Net.framework qui fait marcher l'ensemble du langage ASP.NET, et renvoyé au client sous forme de code HTML. ce code est standard, et n'aie aucune crainte, ne varie pas d'une page à une autre.
Le fait d'invoquer ParentNode ne me souciait donc pas, car je sais que le code se présentera toujours sous la même forme.
Par contre, sont parfaitement fondéesMerci de m'avoir prévenu.
Pour l'exemple, voici un controle serveur radioButtonlist:
IDCLIENT est une id déterminée par le serveur interprétant la page, suivant le contexte (controles parents)
monJavaScript est le script client que je suis capable d'affecter au controle server dans le code asp Ces précisions peuvent servir si quelqu'un est inrterressé sur ce forum
Merci
@+Gilles