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 :

Grisage dans un formulaire


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 74
    Points : 39
    Points
    39
    Par défaut Grisage dans un formulaire
    Bonjour à tous,

    Je construit en ce moment ma page web et j'aimerai actualiser un tableau en fonction de 2 critères. Pour celà j'utilise un formulaire:

    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
    <form action='' name='Filtrer' method='post' onSubmit='return valider();'>
    <form name='form2'>
    <div class='position3'>
    <select name='menu' onChange='menuderoulant(this)'>
    <option value='#'>Select. entreprise</option>
    <option>Messier</option>
    <option>Thompson</option>
    </select>
    </div>
    </form>
     
    <table class='position4'>
    <tr>
    <th><label for'lebelle_devis></label></th>
    <td><input type='text' name='numdev' id='libelle_devis' size='3.5'></td>
    </tr>
    </table>
     
    <p class='position5'>
    <input type='submit' value='Filtrer'>
    </p>
    </form>
    Comme vous le voyez on peut filter par nom d'entreprise via un menu déroulant, par numéro (via le champs designé par id=libele_devis).

    Cependant avant de valider le formulaire (cliquer sur filtrer) je veux etre sur qu'un seul des 2 criteres à été rentré. Donc lorsque je choisi une entreprise via le menu déroulant, le champs libelle_devis se grise et vice-versa. Mais je ne vois pas quel script java utilisé ni comment.

    Voilà merci à ceux qui auront le courage de se pencher sur la question parceque c'est vraiment pas facile.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    disabled

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 453
    Points : 550
    Points
    550
    Par défaut
    Bonjour,

    pouvez-vous donner tout le code s'il vous plait?
    Merci

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    slt,

    dans ta fonction menuderoulant(), tu ajoutes la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("libelle_devis").disabled = true;
    sinon, tu peux aussi faire le submit directement dans ta fonction...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 74
    Points : 39
    Points
    39
    Par défaut
    Bjr,

    j'ai essayé de mettre cette ligne dans la fonction menuderoulant() mais le champs libelle_devis ne se grise toujours pas lorsque je choisi une option du menu déroulant.

    Merci de m'éclairer un petit peu pour les modifications à faire

  6. #6
    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,
    Citation Envoyé par chrosnir Voir le message
    j'ai essayé de mettre cette ligne dans la fonction menuderoulant() mais le champs libelle_devis ne se grise toujours pas lorsque je choisi une option du menu déroulant.

    Ou alors peut etre fallait-il entrer cette ligne dans le fichier .js lui meme et non dans le fichier html?
    Normallement, non.
    Mais les problèmes de syntaxe de ton code empêche peut-être la prise en compte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <label for='libelle_devis'></label>
    De même le size='3.5'. size n'accepte que les valeurs entières, me semble-t-il ...

    Sinon, fais voir ton code actuel de la partie concernée (HTML + JS)

    A+

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 74
    Points : 39
    Points
    39
    Par défaut
    Non le 3.5 marche très bien, dans mon code du moins...

    Sinon j'ai trouvé la solution pour griser le champs libelle_devis lorsque je selectionne quelque chose dans le menu déroulant, je vais maintenant essayer de faire en sorte que l'inverse se fasse aussi (que le menu déroulant se grise lorsque je rentre quelque chose dans le champs libelle_devis).

    Je vous tiens au courant.

  8. #8
    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
    Citation Envoyé par chrosnir Voir le message
    Sinon j'ai trouvé la solution pour griser le champs libelle_devis lorsque je selectionne quelque chose dans le menu déroulant
    Elle est différente de celle proposée ?

    A+

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 74
    Points : 39
    Points
    39
    Par défaut
    Oui, en fait ce n'étais pas une erreur de synthaxe.

    Voici le code de ma page 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
    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
     
    <head>
    <title> 'Intranet' </title>
    <meta http-equiv="Content-Language" content="fr"></meta>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15"></meta>
    <meta name='author' content='L'/>
    <meta name='version' content='1.1'/>
     
    <script type='text/javascript'>
    function menuderoulant(selection){
    var Data = selection.options[selection.selectedIndex].value;
      if( Data !='NULL'){
        document.getElementById('libelle_devis').disabled = true;
    	}
      else{
       document.getElementById('libelle_devis').disabled = false;
      }
    }
    </script>
     
     <link rel='stylesheet' type='text/css' media='all' href='stylesheets/devstyle.css'>
    </head>
     
    <body>
     
    <form action='' name='Filtrer' method='post' onSubmit='return valider();'>
    <form name='form2'>
    <div class='position3'>
    <select name='menu' onChange='menuderoulant(this)'>
    <option value='#'>Select. entreprise</option>
    <option value='Messier'>Messier</option>
    <option value='Thompson'>Thompson</option>
    </select>
    </div>
    </form>
     
    <table class='position4'>
    <tr>
    <th><label for'lebelle_devis'></label></th>
    <td><input type='text' name='numdev' id='libelle_devis' size='3.5'></td>
    </tr>
    </table>
     
    <p class='position5'>
    <input type='submit' value='Filtrer'>
    </p>
    </form>
    </body>
    </html>
    Avec ce code, dès que je selectionne une des options du menu déroulant, mon champs libelle_devis se grise.
    Mais je n'arrive toujours pas à faire en sorte que lorsque mon champs libelle-devis soit différent de NULL, le menu déroulant se grise.

    Es-ce que vous pouvez m'aider pour ca?

  10. #10
    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
    Citation Envoyé par chrosnir Voir le message
    Oui, en fait ce n'étais pas une erreur de synthaxe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('libelle_devis').disabled = true;
    donc, non, elle n'était pas différente de celle proposée.

    ... et oui, tu as toujours une erreur de syntaxe (et d'orthographe) dans ton tag <label>

    Et tu avais visiblement d'autres critères à prendre en compte, ce qui par contre est visiblement fait

    A+

  11. #11
    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
    Citation Envoyé par chrosnir Voir le message
    Avec ce code, dès que je selectionne une des options du menu déroulant, mon champs libelle_devis se grise.
    Mais je n'arrive toujours pas à faire en sorte que lorsque mon champs libelle-devis soit différent de NULL, le menu déroulant se grise.

    Es-ce que vous pouvez m'aider pour ca?
    Si c'est bien ton <select> que tu appelles "menu déroulant" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='text' name='numdev' id='libelle_devis' size='3.5' onchange="document.getElementById('menu').disabled = (this.length>0);">
    En ajoutant bien sûr un id="menu" dans ton tag <select>.

    A+

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 74
    Points : 39
    Points
    39
    Par défaut
    J'ai toujours laissé libelle_devis dans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('libelle_devis').disabled = true;
    Car il correspond à l'Id de l'élément:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <th><label for'lebelle_devis'></label></th>
    <td><input type='text' name='numdev' id='libelle_devis' size='3.5'></td>
    Et non à son label.

    Donc l'erreur ne venait pas de là. D'ailleurs j'ai volontairement choisi un label différent de l'Id pour ne pas me mélanger. Le programme fonctionne très bien.

    Par contre mon second problème n'est toujours pas résolu, es-ce que tu aurai une solution à me proposer?

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    slt,

    tu peux utiliser la même fonction... il te faut pour cela ajouter un paramètre à celle-ci : l'id du select à griser ou non.

    donc en définitive tu appeles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    menuderoulant(this,'libelle_devis');
    et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    menuderoulant(this,'menu');

  14. #14
    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
    Citation Envoyé par chrosnir Voir le message
    Par contre mon second problème n'est toujours pas résolu, es-ce que tu aurai une solution à me proposer?
    C'était déjà fait, juste au dessus ...

  15. #15
    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
    Citation Envoyé par jeje13009 Voir le message
    tu peux utiliser la même fonction...
    Non, car le test qu'elle inclut ne semble pas pertinent ...

    A+

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 74
    Points : 39
    Points
    39
    Par défaut
    Désolé mais avec ce code ca ne marche toujours pas:

    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
    <head>
    <title> 'Intranet' </title>
    <meta http-equiv="Content-Language" content="fr"></meta>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15"></meta>
    <meta name='author' content='L'/>
    <meta name='version' content='1.1'/>
     
    <script type='text/javascript'>
    function menuderoulant(selection){
    var Data = selection.options[selection.selectedIndex].value;
      if( Data !='NULL'){
        document.getElementById('libelle_devis').disabled = true;
    	}
      else{
       document.getElementById('libelle_devis').disabled = false;
      }
    }
    </script>
     
     <link rel='stylesheet' type='text/css' media='all' href='stylesheets/devstyle.css'>
    </head>
     
    <body>
     
    <form action='' name='Filtrer' method='post' onSubmit='return valider();'>
    <form name='form2'>
    <div class='position3'>
    <select name='menu' onChange='menuderoulant(this)' id='menu'>
    <option value='#'>Select. entreprise</option>
    <option value='Messier'>Messier</option>
    <option value='Thompson'>Thompson</option>
    </select>
    </div>
    </form>
     
    <table class='position4'>
    <tr>
    <th><label for'lebelle_devis'></label></th>
    <td><input type='text' name='numdev' id='libelle_devis' size='3.5' onchange="document.getElementById('menu').disabled = (this.length>0);"></td>
    </tr>
    </table>
     
    <p class='position5'>
    <input type='submit' value='Filtrer'>
    </p>
    </form>
    </body>
    </html>
    Je pense qu'il y a encore quelque chose à rajouter mais je ne sais pas quoi...

  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
    Hum ... c'est ma faute
    A+

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 74
    Points : 39
    Points
    39
    Par défaut
    Je n'obtiens toujours aucun grisage dans le menu déroulant, que ce soit avec length, value, value.length ou meme length.value

    Dsl je sais que je suis chiant mais j'ai essayé tellement de trucs que je m'en remet à vous maintenant ...

  19. #19
    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
    Citation Envoyé par chrosnir Voir le message
    Je n'obtiens toujours aucun grisage dans le menu déroulant, que ce soit avec length, value, value.length ou meme length.value
    Ah bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="document.getElementById('menu').disabled = (this.value.length>0);"
    fonctionne très bien chez moi (IE 6 et FF2).

    Par contre, le choix dans la liste est "définitif"

    A+

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 74
    Points : 39
    Points
    39
    Par défaut
    Ok j'avais un conflit entre 2 menus déroulant mais c'est résolu.

    Je vais maintenant essayer d'appliquer ca à 4 champs (le menu déroulant, 2 calendriers et le champs libelle_devis).

    Je devrai pouvoir y arriver avec toutes les informations que tu m'a donné.

    Juste un petit détail quand tu dis:
    Par contre, le choix dans la liste est "définitif"
    Tu veux dire que quand je choisi une option du menu déroulant je ne pourrai plus dégriser le champs libelle_devis à moins d'actualiser la page?

    En tout cas merci beaucoup, je ne sais vraiment pas comment j'aurais fait sans toi

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

Discussions similaires

  1. Response.BinaryWrite dans un formulaire
    Par faamugol dans le forum ASP
    Réponses: 4
    Dernier message: 12/05/2004, 12h45
  2. Forcer la saisie en MAJ dans un Formulaire
    Par lolos dans le forum IHM
    Réponses: 4
    Dernier message: 12/08/2003, 10h57
  3. Réponses: 3
    Dernier message: 19/03/2003, 15h19
  4. Réponses: 2
    Dernier message: 12/02/2003, 15h26
  5. [CR][Access] intégrer un viewer dans un formulaire access
    Par nicolak dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 13/01/2003, 15h52

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