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 :

Changer la visibilité d'un champ à partir d'un autre


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2013
    Messages : 32
    Points : 18
    Points
    18
    Par défaut Changer la visibilité d'un champ à partir d'un autre
    salut,
    je veux changer la visisbilité des champs des notes selon le nbr de ds saisis, j'ai créé une fonctions en javascript mais elle ne fonctionne pas.
    volia le code:
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    <html>
    <head>
    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen"/>
    </head>
    <body>
    <style>
    body
    		{
    			background-image:url('images/1.jpg');
     
    		} 
    </style>
     
    <div  class="tout" align="center">
    <form method="Post">
    <table border="2"   align="center" class="item">
    <tr>
    <td colspan="2">Seuil:</td>
    <td><input type="text" name="S"/></td>
    <tr>
    <td colspan="2">nbs de ds:</td>
    <td><input type="text" name="ds"  /></td>
    <tr><td>note1 :</td>
    <td><input type="text" name="n1" onchange="remplir()" disabled="true"  value="nom"/></td><td><input type="text" disabled="true"  onchange="remplir()" name="p1" value="%"/></td>
    </tr>
    <tr><td>note2 :</td>
    <td><input type="text" name="n2"  disabled="true"  onchange="remplir()" value="nom"/></td><td><input type="text"   disabled="true" name="p2" onchange="remplir()" value="%"/></td>
    </tr>
    <tr><td>note3 :</td>
    <td><input type="text" name="n3" disabled="true" onchange="remplir()" value="nom"/></td><td><input type="text" onchange="remplir()" disabled="true" name="p3"  value="%"/></td>
    </tr>
    <tr><td>note4 :</td>
    <td><input type="text" name="n4" disabled="true" onchange="remplir()" value="nom"/></td><td><input type="text" onchange="remplir()" disabled="true" name="p4"  value="%"/></td>
    </tr>
    <tr><td>note5 :</td>
    <td><input type="text" name="n5"  disabled="true" onchange="remplir()"  value="nom"/></td><td><input type="text" disabled="true" onchange="remplir()" name="p5"  value="%"/></td>
    </tr>
    </table>
    <input type='submit' name='submit' value='Envoyer' />
    <input type='RESET' name='submit' value='reset' color="violet"/>
     
    </form>
    </div>
     
    <script>
    function remplir(){
    var vl= document.forms[0].elements[2].value;
    for(var i=1;var i<6;var i++){
     if (vl == var i)
        form.n[i].disabled=false;
    	form.p[i].disabled=false;
     else 
         form.n[i].disabled=true;
    	 form.p[i].disabled=trrue;
    	}
    	</script>
     
    </body>
    </html>

    qlq m'indiquer les erreures que j'ai comis et merci d'avance

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 102
    Points : 44 860
    Points
    44 860
    Par défaut
    Bonjour,
    qlq m'indiquer les erreures que j'ai comis et merci d'avance
    function remplir() {
      var vl = document.forms[0].elements[2].value;
      for (var i = 1;  var i < 6;  var i++) {
        if (vl ==  var i) {
          form.n[i].disabled = false;
          form.p[i].disabled = false;
        }
        else{
          form.n[i].disabled = true;
          form.p[i].disabled = trrue;
        }
      }
    }
    en vert ce qui manque et en rouge ce qu'il y a en trop, il te reste du boulot

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2013
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    malheureusement ca ne fonctionne pas, je pense que le probleme se situe au niveau des balises input car j'ai mis dans chaque input. je sais pas où je vais mettre cette fonction et meme si c'est la bonne fonction ou nn.
    merci

  4. #4
    Membre à l'essai
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Pour changer la visibilité d'une note, peut-etre que tu pourrais faire ça :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!-- 5 notes maximum par exemple. -->
    <div id="note1">...</div
    <div id="note2">...</div
    <div id="note3">...</div
    <div id="note4">...</div
    <div id="note5">...</div
     
     
    <input type=text id="nbrDS" onchange="affiche(this.value)"></input>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    maxnotes=5;
     
    function affiche(valeur){
    for(n=1,n<=maxnotes,n++){
       note="note"+n;
       document.getElementById(note).display="none"; // On efface toutes les notes.
       if(n<=valeur){ 
         document.getElementById(note).display="block"; // On affiche que le nombre de notes voulues.
         }
      }
    }


    Normalement ça affiche autant de notes que demandé dans NbrDS.
    Mets les instructions HTML dans la page HTML et les instructions javascript dans la page javascript car là j'ai tout mis ensemble^^

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 102
    Points : 44 860
    Points
    44 860
    Par défaut
    ...il te reste du boulot
    eh oui je t'avais prévenu

    Première chose comment veux tu qu'une fonction soit déclenchée sur le onchange d'un élément que l'on ne peut pas modifier (disabled = true), donc tes <input type="text" name="n1" onchange="remplir()" disabled="true" value="nom"/> n'ont aucun sens.

    Il te faut donc le mettre sur l'élément qui sera le déclencheur de la fonction soit ton INPUT name="ds".

    Lorsque tu écris document.forms[0].elements[2].value;, cela signifie que tu accèdes au TROISIEME élément de la FORM, ce qui n'est visiblement pas ce que tu souhaites, les index commencent à 0.

    Dans ta fonction form.n[i] ne veut pas non plus dire grand chose, je présume que tu veux parler de l'INPUT name="n1".

    Bon en gros pas mal de choses à revoir mais on pourrait arriver à cela
    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
    function remplir(){
      var oForm = document.forms[0];
      var vl= oForm.elements[1].value;
     
      for(var i=1;  i<6; i++){
        if (vl == i){
          oForm['n' +i].disabled=false;
          oForm['p' +i].disabled=false;
        }
        else{
          oForm['n' +i].disabled=true;
          oForm['p' +i].disabled=true;
        }
      }
    }

  6. #6
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 143
    Points
    11 143
    Par défaut
    l'attribut disabled ne prend qu'une valeur : "disabled" il n'y a pas de true ou false.
    Champ en lecture seule :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
     <input type="text" name="n1" onchange="remplir()" disabled="disabled" value="nom"/>
    ou champ "actif" :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
     <input type="text" name="n1" onchange="remplir()"  value="nom"/>

  7. #7
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 102
    Points : 44 860
    Points
    44 860
    Par défaut
    Bien vu Auteur, pas tilté du tout sur ce coup même si cela ne change que pour la validation de la page autant écrire correctement dès le départ !

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/10/2007, 16h35
  2. changer les paramètre d'un frame à partir d'un autre
    Par kenzouza dans le forum JBuilder
    Réponses: 3
    Dernier message: 06/03/2007, 13h31
  3. remplir un champs à partir d'un autre champ
    Par Claire07 dans le forum Access
    Réponses: 4
    Dernier message: 19/06/2006, 12h50
  4. Création d'un champs à partir de 3 autres champs
    Par Badboy62cfp dans le forum Access
    Réponses: 2
    Dernier message: 23/05/2006, 15h47
  5. Réponses: 3
    Dernier message: 09/07/2004, 10h23

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