Envoyé par : Christophe Charron
Date : 08/05/2006 15:47
Bonjour, via javascript, j'arrive bien à sélectionner correctement le bouton radio de mon choix:
<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id="testboutonsradios" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script src="2006_05_08_tests_boutonsradios_01.js" type="application/x-javascript"/> <caption label="Activité" /> <radiogroup id='rdg_actif' flex="1" label='label_groupe' name='nomgroupe'> <radio id='ra_choix_actif_oui' label="Actif" selected="false" value="1"/> <radio id='ra_choix_actif_non' label="Inactif" selected="false" value="2" /> </radiogroup> <button label="Désactiver" onclick="pf_desactiver()"/> </window>
avec le script suivant
function pf_desactiver() { var ra; ra=document.getElementById('rdg_actif'); ra.selecteditem=document.getElementById('ra_choix_actif_oui'); alert(ra.selecteditem.label); alert(ra.selecteditem.value); ra.selecteditem=document.getElementById('ra_choix_actif_non'); alert(ra.selecteditem.label); alert(ra.selecteditem.value); }
Par contre, visuellement, aucun bouton n'est coché, ce qui est très désarmant. Je tourne en rond depuis 2 heures et je ne trouve rien !! Qu'ai-je loupé comme attribut ?
Cordialement, Christophe Charron
Envoyé par : thefab
Date : 08/05/2006 17:25
Ben tes 2 radios sont selected="false" met en 1 à "true"
Envoyé par : Christophe Charron
Date : 09/05/2006 08:39
thefab a écrit:
Ben tes 2 radios sont selected="false" met en 1 à
"true"
Bonjour, oui c'est en effet ce que je cherche à faire en javascript : mais la ligne
ra.selecteditem.selected=true;
me renvoie que la propriété est en lecture seule
Erreur : setting a property that has only a getter Fichier source : http://localhost/2006_05_08_tests_boutonsradios_01.js Ligne : 10
Comme indiqué ici d'ailleurs.
J'aimerais "simplement" pouvoir visualiser cet état mais mon erreur doit être tellement énorme, enfin j'espère ...
Envoyé par : wako
Date : 09/05/2006 09:00
ra.selectedItem.selected = "true";
Ce n'est pas une valeur "vrai" qu'il faut mettre mais la chaine de caractere "true".
wako, qui pense ne pas dire de connnerie
Envoyé par : Christophe Charron
Date : 09/05/2006 09:03
wako a écrit:
ra.selectedItem.selected = "true";
Ce n'est pas une valeur "vrai" qu'il faut mettre
mais la chaine de caractere "true".
wako, qui pense ne pas dire de connnerie
Merci pour la prompte réponse mais non, cela ne fonctionne pas, l'erreur est la même !
Envoyé par : wako
Date : 09/05/2006 09:06
Humm
J'ai regarder d'un tout petit peu plus près est la variable ra n'est pas égal à un radio (ce qui doit être + ou - coché) mais à un radiogroup.
On coche pas le radiogroup :)
wako
Envoyé par : Christophe Charron
Date : 09/05/2006 09:10
wako a écrit:
Humm
J'ai regarder d'un tout petit peu plus près est la
variable ra n'est pas égal à un radio (ce qui doit
être + ou - coché) mais à un radiogroup.
On coche pas le radiogroup :)
wako
Vi mais
document.getElementById('ra_choix_actif_oui').selected="true";
renvoie également que la propriété est en lecture seule !
christophe
Envoyé par : wako
Date : 09/05/2006 09:22
et si tu utilises l'attribut checked ?
wako
Envoyé par : Christophe Charron
Date : 09/05/2006 09:25
wako a écrit:
et si tu utilises l'attribut checked ?
wako
document.getElementById('ra_choix_actif_oui').checked=true;
ou
document.getElementById('ra_choix_actif_oui').checked="true";
Ne plantent pas mais n'on pas d'action "visible".
Christophe
Envoyé par : thefab
Date : 09/05/2006 09:53
Hello,
Je me suis un peu mélangé les pinceaux avec ton code: tu parles de sélectionner avec une fonction qui s'appelle pf_desactiver() et des selectedItem ;-)
Pour lire la valeur actuellement sélectionnée tu peux (dois?) passer par le radiogroup soit avec getElementById() soit dans le oncommand:
<radiogroup oncommand="afficher(event);"> <radio id="oui" label="Oui" selected="true" value="1"/> <radio id="non" label="Non" value="2"/> </radiogroup>
function afficher(e) { // affiche 1 ou 2 en fonction du radio sélectionné alert(e.currentTarget.value); }
(Je préfère le oncommand en passant l'event ça permet de créer des fonctions plus génériques)
Pour désactiver un radio: simplement removeAttribute()
function pf_desactiver() { document.getElementById("oui").removeAttribute("selected"); document.getElementById("non").removeAttribute("selected"); }
Fabrice
Envoyé par : thefab
Date : 09/05/2006 09:58
Et pour sélectionner:
document.getElementById("oui").setAttribute("selected", true);
Avec true ou "true" par contre ça ne désactive pas les autres et l'évenement oncommand n'est pas déclanché...
Envoyé par : Christophe Charron
Date : 09/05/2006 10:11
Je suis vraiment un GMT (Gros Museau de Tanche) Merci j'arrive à mes fins ...
Voilà donc la fenêtre test :
<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id="testboutonsradios" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script src="2006_05_08_tests_boutonsradios_02.js" type="application/x-javascript"/> <caption label="Activité" /> <radiogroup oncommand="afficher(event);"> <radio id="oui" label="Oui" selected="true" value="1"/> <radio id="non" label="Non" value="2"/> </radiogroup> <button label="Désactiver" onclick="pf_desactiver()"/> <button label="Activer oui" onclick="pf_activer('oui')"/> <button label="Activer non" onclick="pf_activer('non')"/> </window>
et le script
function afficher(e) { // affiche 1 ou 2 en fonction du radio sélectionné alert(e.currentTarget.value); } function pf_desactiver() { document.getElementById("oui").removeAttribute("selected"); document.getElementById("non").removeAttribute("selected"); } function pf_activer(vv_lequel) { pf_desactiver(); document.getElementById(vv_lequel).setAttribute("selected", "true") }
Encore merci, Très cordialement, Christophe
Envoyé par : thefab
Date : 09/05/2006 11:49
Salut,
Utilise plutôt oncommand que onclick sur tes boutons aussi, ça permet de déclancher la fonction associée avec le clavier (Enter) et setAttribute() / removeAttribute() ne déclanchent pas oncommand. Ce n'est peut-être pas la bonne manière mais tant mieux si ça fonctionne.
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.