IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Formulaire et javascript : radio et select interd�pendants


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    D�cembre 2008
    Messages
    31
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 31
    Par d�faut Formulaire et javascript : radio et select interd�pendants
    Bonjour,

    Je suis compl�tement d�butant en javascript. J'ai lu quelques tutoriaux, mais seulement, vous l'avez devin�, j'ai un petit soucis avec la mise en pratique.

    En fait, mon probl�me est le suivant :
    j'ai deux listes SELECT, que je voudrais griser en fonction de boutons radio.
    En gros, si le premier radio est check�, la deuxi�me liste est d�activ�e, et si c'est le second, la premi�re liste est gris�e.
    J'avais donc ins�r� l'option onFocus="document.forms[0].liste1.disabled='TRUE'" pour d�sactiver mes listes SELECT (j'avais mis �a dans les balises des boutons radio)
    Mon probl�me est de les r�-activer.
    J'ai essay� avec onBlur="document.forms[0].liste1.disabled='FALSE'", sans succ�s.

    Second probl�me, lorsque je charge ma page, un bouton radio est s�lectionn� par d�faut (le n� du bouton est stock� avec PHP). Est-il possible de griser la liste correspondante au chargement de la page ?

    Merci de vos r�ponses.

  2. #2
    Membre �m�rite
    Homme Profil pro
    Touche � tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    811
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Alg�rie

    Informations professionnelles :
    Activit� : Touche � tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 811
    Par d�faut
    Bonjour,
    il serait plus ad�quat d'�crire
    onFocus="document.forms[0].liste1.disabled=true"

    et pour r�activer
    onFocus="document.forms[0].liste1.disabled=false"

    Le fait de les mettre 1. En majuscules 2. entre '' fausse la donne et envoi true syst�matiquement.

    Pour ta deuxi�me question, une p'tite astuce :
    En supposant que $var soit la variable qui contienne le num�ro de la liste � d�sactiver.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <select name="pre" <?if($var==1) {echo 'DISABLED';}>
             <option..
              .....
              .....
    </select>
    <select name="deux" <?if($var==2) {echo 'DISABLED';}>
             <option..
              .....
              .....
    </select>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    D�cembre 2008
    Messages
    31
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 31
    Par d�faut
    Merci beaucoup kabkab !
    Mon formulaire a d�j� plus de gueule !

    Dernier soucis : j'ai un pote qui a un mac, et sous safari...�a ne passe pas : les options ne se d�grisent pas.
    Des id�es sur l'origine du probl�me ?

    Merci encore.

  4. #4
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Bonjour,
    Citation Envoy� par kabkab Voir le message
    il serait plus ad�quat d'�crire
    onFocus="document.forms[0].liste1.disabled=true"

    et pour r�activer
    onFocus="document.forms[0].liste1.disabled=false"
    + pour le true/false

    Par contre, pour �viter les probl�mes de compatibilit�, utilise plut�t les id pour acc�der aux �l�ments de la page.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <select id="pre" name="pre" <?if($var==1) {echo 'DISABLED';}>
    puis tu pourras faire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    onfocus="document.getElementById('pre').disabled=true;"
    Les noms des �v�nements sont toujours en minuscules (comme toute propri�t� HTML) ...

    EDIT : par contre, attention : contrairement au name l'id doit �tre unique dans la page ...

    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    D�cembre 2008
    Messages
    31
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 31
    Par d�faut
    Salut !

    J'ai modifi� en rempla�ant les forms[0].nomduchamp par getElementById['idduchamp'], seulement, �a ne change rien au probl�me de mon pote...

    D'autres id�es ?

    Merci.

  6. #6
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    getElementById['idduchamp']
    Citation Envoy� par Warno Voir le message
    D'autres id�es ?
    Une autre, oui : remplace les [] par des () ...

    A+

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    D�cembre 2008
    Messages
    31
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 31
    Par d�faut
    Autant pour moi ! J'ai bien �cris avec des parenth�ses dans mon code.
    Le probl�me ne se trouve donc pas l�....malheureusement.



    [EDIT] Y a-t-il quelque chose de particulier � faire pour que le javascript soit lu par Safari ?
    En fait, j'ai deux pistes :
    - soit le javascript est mal d�clar� (si il y a besoin de le d�clarer...) dans ma page
    - soit il y a un soucis avec la fonction onfocus en particulier : en effet, j'ai d�j� des pages sur mon site avec du javascript (fonction onmouseover) qui fonctionne sous Safari

    Ah si tout le monde �tait sous FFx....

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    D�cembre 2008
    Messages
    31
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 31
    Par d�faut
    Au fait, je pense que j'ai trouv� d'o� vient le probl�me.
    En fouinant un peu � droite � gauche, j'ai trouv� la cause de mon probl�me : le onfocus n'est pas d�clench� par le clic de la souris sous Safari !

    Effectivement, lorsque je s�lectionne mes entr�es avec le clavier, les champs se d�grisent et se grisent correctement....

    Ma question, vous l'avez devin� : comment rem�dier � cela ?

    Merci de vos r�ponses.

    [EDIT] : je crois que j'ai trouv� une solution : remplacer le onfocus par un onchange.
    Ca r�gle le pb sous safari et FFx.
    Par contre, c'est g�r� un peu bizarrement sous IE...mais bon.

Discussions similaires

  1. R�ponses: 3
    Dernier message: 09/07/2009, 10h25
  2. verif de formulaire et boutons radio
    Par Invit� dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 07/02/2006, 22h42
  3. aide formulaire et bouton radio
    Par jarod71 dans le forum IHM
    R�ponses: 1
    Dernier message: 01/12/2005, 16h05
  4. Impossible d'envoyer un formulaire avec javascript
    Par Mimi Bulles dans le forum G�n�ral JavaScript
    R�ponses: 7
    Dernier message: 14/11/2005, 20h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo