Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# "cochage" d'un bouton radio ...

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

# Re: "cochage" d'un bouton radio ...

Envoyé par : thefab

Date : 08/05/2006 17:25

Ben tes 2 radios sont selected="false" met en 1 à "true"

# Re: "cochage" d'un bouton radio ...

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 ...

# Re: "cochage" d'un bouton radio ...

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

# Re: "cochage" d'un bouton radio ...

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 !

# Re: "cochage" d'un bouton radio ...

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

# Re: "cochage" d'un bouton radio ...

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

# Re: "cochage" d'un bouton radio ...

Envoyé par : wako

Date : 09/05/2006 09:22

et si tu utilises l'attribut checked ?

wako

# Re: "cochage" d'un bouton radio ...

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

# Re: "cochage" d'un bouton radio ...

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

# Re: "cochage" d'un bouton radio ...

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é...

# Re: "cochage" d'un bouton radio ...

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

# Re: "cochage" d'un bouton radio ...

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.