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 :

utiliser fonction disabled


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Points : 83
    Points
    83
    Par défaut utiliser fonction disabled
    Bonjour,

    lors du chargement de ma page j'aimerais qu'un champs soit désactivé,

    et après avoir sélectionné un choix de la liste( value=1) j'active mon champs texte.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function enableInput(){
         var a = document.getElementById("idSelect");
         document.getElementById("idInput").disabled= !(a.options[a.selectedIndex].value==1);
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select id="idSelect" onchange="enableInput()">
         <option value="0">0</option>
         <option value="1">1</option>
    </select>
    <input type="text" disabled="disabled" id="idInput" />

    A+.

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    ça marche pas je comprend pas pourquoi.

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    Voici mon code html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <TR>
    	<TD class="label">Type de paiement <span>*</span>   </TD>
    	<TD>
    	<select name="paie" onchange="desactiver()">
    	<option value="0">paiement</option>
    	<option value="1">ch&egrave;que</option>
    	<option value="2">carte bancaire</option>
    	<option value="3">esp&egrave;ce</option>
    	<option value="4">virement</option>
    	<option value="5">pr&eacute;l&egrave;vement</option>
    	<option value="6">Autre</option>
     
     
     
    </select>
    	</TD>
    </TR>
    <TR>
    	<TD class="lab">Montant de sous op&eacute;ration <span>*</span>   </TD>
    	<TD>
    	<INPUT type=text name="montantssop" disabled="disabled">
    	</TD>
    		<td>&euro;</td>
    </TR>

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 057
    Points : 44 589
    Points
    44 589
    Par défaut
    qui y a t-il dans ta fonction désactiver(), qui visiblement devrait s'appeler activer() d'ailleurs?
    Il faut que tu ais une ID sur ton INPUT si tu utilises la méthode getElementById.

    Relis bien ce que t'as mis andry.aime

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function desactiver(){
         var a = document.getElementByName("paie").selectedIndex;
    	 If (a.value==3)
         document.getElementByName('montantssop').disabled==false;
    	 //!(a.options[a.selectedIndex].value==3);
    }

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 057
    Points : 44 589
    Points
    44 589
    Par défaut
    c'est bien ce que je pensais il te faut mettre des ID à tes contrôles

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <tr>
      <td class="label">Type de paiement <span>*</span></td>
      <td>
      <select id="paie" name="paie" onchange="desactiver()">
        <option value="0">paiement</option>
        <option value="1">ch&egrave;que</option>
        <option value="2">carte bancaire</option>
        <option value="3">esp&egrave;ce</option>
        <option value="4">virement</option>
        <option value="5">pr&eacute;l&egrave;vement</option>
        <option value="6">Autre</option>
      </select>
      </td>
    </tr>
    <tr>
      <td class="lab">Montant de sous op&eacute;ration <span>*</span></td>
      <td><input type=text id="montantssop" name="montantssop" disabled="disabled"></td>
      <td>&euro;</td>
    </tr>

  8. #8
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    je pense que l'erreurs n'est pas à ce niveau, j'ai tester avec id et name mais ça marche pas.


    Je sais pas pourquoi et j'ai besoin de faire ce test sur mes intefaces

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 057
    Points : 44 589
    Points
    44 589
    Par défaut
    euh ! pardon regardé trop vite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function desactiver(){
      var a = document.getElementById("paie");
      document.getElementById("montantssop").disabled= !(a.options[a.selectedIndex].value==3);
    }
    c'est ce que t'as mis andry.aime

    il est préférable de ne pas utiliser la méthode getElementsByName, avec un s

  10. #10
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    je n'utilise pas de s dans mon code !!!!

  11. #11
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 057
    Points : 44 589
    Points
    44 589
    Par défaut
    c'est en partie ton erreur, mais ATTENTION cette méthode retourne une collection donc il faut faire l'appel comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      var a = document.getElementsByName("paie")[0]; // recup l'objet SELECT
    de plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (a.value==3) // i minuscule
    de plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementByName('montantssop').disabled==false; // comparaison et non affectation

  12. #12
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    Merci pour tes réponse, mais je comprend pas pourquoi ça marche toujours pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function desactiver(){
         var a = document.getElementsByName('paie')[0].value;
    	 if (a==0){
    	 document.getElementsByName('montantssop').disabled=false;
    }}

    Désolé si je vous embêtes, mais j'ai jamais utilisé javascript, c'est la première fois.

  13. #13
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 057
    Points : 44 589
    Points
    44 589
    Par défaut
    idem ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByName('montantssop').disabled=false;
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByName('montantssop')[0].disabled=false;

  14. #14
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    rien n'a changer en rajoutant le 0, j fait un test simple si je change de valeur j'affiche un alert; mais l'alert ne s'affiche pas, je pense que le navigateur ne connait pas cette fonction "onchange"

  15. #15
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Tu nous montres ton code javascript et html

  16. #16
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    CODE JS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function desactiver(){
         var a = document.getElementsByName('paie')[0].value;
    	 if (a==3){
    	 document.getElementsByName('montantssop').disabled=false;
    }}
    HTML/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    </form name="form">
    <tr>
      <td class="label">Type de paiement <span>*</span></td>
      <td>
      <select id="paie" name="paie" onchange="desactiver()">
        <option value="0">paiement</option>
        <option value="1">ch&egrave;que</option>
        <option value="2">carte bancaire</option>
        <option value="3">esp&egrave;ce</option>
        <option value="4">virement</option>
        <option value="5">pr&eacute;l&egrave;vement</option>
        <option value="6">Autre</option>
      </select>
      </td>
    </tr>
    <tr>
      <td class="lab">Montant de sous op&eacute;ration <span>*</span></td>
      <td><input type=text id="montantssop" name="montantssop" disabled="disabled"></td>
      <td>&euro;</td>
    </tr></form>

  17. #17
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (a=="3"){    // une value est de type string
    	 document.getElementsByName('montantssop')[0].disabled=false;
    ?

    EDIT : ceci dit, avec ton formulaire n'est pas valide.
    De plus, l'imbriquer ainsi dans la structure d'une <table> t'expose également à des comportements aléatoires suivant les navigateurs.

    Et je confirme aussi que les id sont toujours préférables pour faire référence aux objets de la page.

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  18. #18
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    En fait j'ai rajouter form à la fin car la structure de ma page est plus longue que ce que j'ai affiché et mon form est bien dans sa place, pas de problème à ce niveau.

  19. #19
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 057
    Points : 44 589
    Points
    44 589
    Par défaut
    Citation Envoyé par kensem Voir le message
    rien n'a changer en rajoutant le 0, j fait un test simple si je change de valeur j'affiche un alert; mais l'alert ne s'affiche pas, je pense que le navigateur ne connait pas cette fonction "onchange"
    cela veut dire qu'il y a une erreur ailleurs si ton alert ne s'affiche pas, quant à la méthode change elle est bien prise en compte par les navigateurs et ce depuis le début.

    je remets la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function desactiver(){
      var a = document.getElementsByName('paie')[0].value;
      if( a == "3"){
        document.getElementsByName('montantssop')[0].disabled = false;
      }
    }
    elle marche...même si l'attribut/propriété disabled est légèrement bizarre!

    Citation Envoyé par E.Bzz Voir le message
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (a=="3"){    // une value est de type string
    	 document.getElementsByName('montantssop')[0].disabled=false;
    ?
    les value des contrôles sont de type string, même si javascript autorise la comparaison entre 3 et "3", donc autant prendre de bonnes habitudes en comparant des mêmes types

  20. #20
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    En fait il y a pas d'erreurs sur le code , le problème c'est que j'ai deux fonction javascript: desactiver() et valider() si j’enlève valider, desactiver marche et quand j'ai les deux ça marche pas.

    Je vous ai embêter pour rien. Merci beaucoup pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Pb de blancs dans utilisation fonction FtpFindFirstFile
    Par AlvinTheMaker dans le forum MFC
    Réponses: 2
    Dernier message: 06/04/2005, 12h33
  2. Réponses: 6
    Dernier message: 24/02/2005, 09h44
  3. [GIMP] [Script-FU] Utilisation fonction gimp-curves-spline
    Par narmataru dans le forum Autres langages
    Réponses: 1
    Dernier message: 09/02/2005, 17h25
  4. [Débutant] Aide utilisation fonctions :(
    Par trakiss dans le forum Débuter
    Réponses: 10
    Dernier message: 27/08/2004, 15h59
  5. Utilisation fonction définie dans un .Dll
    Par jeab. dans le forum Windows
    Réponses: 5
    Dernier message: 23/03/2004, 16h23

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