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 :

Input obligatoire suivant choix


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 215
    Points : 79
    Points
    79
    Par défaut Input obligatoire suivant choix
    Bonjour,
    J'ai un menu déroulant dans un formulaire et je voudrais rendre obligatoire de remplir un INPUT mais uniquement si une des option du SELECT à été selectionner...
    Comment pourraige faire 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    function menu_md11(){
    var indice_selectionne=document.prestations_tvd.compris49.selectedIndex;
    var chango=document.prestations_tvd.compris49.options[indice_selectionne].value; switch (chango){
    case "Monteur hors poste":document.prestations_tvd.texter49.value="TA60";break;
    case "Monteur hors poste suppl hors jo":document.prestations_tvd.texter49.value="TA601";break;
    case "Remontée mécanique":document.prestations_tvd.texter49.value="TA37";break;
    case "Tranchée en voirie":document.prestations_tvd.texter49.value="TA?";break;
    case "Raccordement complet":document.prestations_tvd.texter49.value="TA?";break;
    case "Elévateur avec chauffeur":document.prestations_tvd.texter49.value="TA62";break;
    case "Elévateur avec chauffeur sup hors":document.prestations_tvd.texter49.value="TA624";break;
    case "Reprise de racc raccour":document.prestations_tvd.texter49.value="TA52";break;
    case "Reprise de racc allongement":document.prestations_tvd.texter49.value="TA53";break;
    case "Pose de câble standart RG6":document.prestations_tvd.texter49.value="TA510";break;
    case "Pose de câble haute perfo RG11":document.prestations_tvd.texter49.value="TA511";break;
    default:document.prestations_tvd.texter49.value="Un choix svp.";break;
    }
    }
     
    //Fin des menu déroulant....
     
    //fonction vérification des champs (chantier et fin).
    function check1() {
      if (document.prestations_tvd.chantier.value == '') {
        alert('Référence chantier obligatoire pour la facturation.');
        document.prestations_tvd.chantier.focus();
        return false;
      }
      if (document.prestations_tvd.fin.value == '0') {
        alert('Merci de spécifier si le chantier est toujours en cours ou terminé ?.');
        document.prestations_tvd.fin.focus();
        return false;
      }
     
      return true;
    }
    Dans l'exemple ici je voudrais rendre un champs obligatoire quand l'option
    TA511 est selectionner

    D'avance merci

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Tu fait une condition basée sur l'index de la liste pour
    exécuter un code de validation que dans ce cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var i = document.prestations_tvd.compris49.selectedIndex;
    if(i==...) {
      // test de validation du champ ici
    }
    En passant, je trouve ta fonction menu_md11 un peu compliquée.

    Ne pourrais-tu pas faire qqch dans le genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function menu_md11() {
      var indice_selectionne=document.prestations_tvd.compris49.selectedIndex;
      var values = new Array("TA60","TA601","TA37","TA?",TA?", ...);
      document.prestations_tvd.texter49.value = values[indice_selectionne];
    }
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  3. #3
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 215
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par dunbar
    Bonjour,
    J'ai un menu déroulant dans un formulaire et je voudrais rendre obligatoire de remplir un INPUT mais uniquement si une des option du SELECT à été selectionner...
    Comment pourraige faire 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    function menu_md11(){
    var indice_selectionne=document.prestations_tvd.compris49.selectedIndex;
    var chango=document.prestations_tvd.compris49.options[indice_selectionne].value; switch (chango){
    case "Monteur hors poste":document.prestations_tvd.texter49.value="TA60";break;
    case "Monteur hors poste suppl hors jo":document.prestations_tvd.texter49.value="TA601";break;
    case "Remontée mécanique":document.prestations_tvd.texter49.value="TA37";break;
    case "Tranchée en voirie":document.prestations_tvd.texter49.value="TA?";break;
    case "Raccordement complet":document.prestations_tvd.texter49.value="TA?";break;
    case "Elévateur avec chauffeur":document.prestations_tvd.texter49.value="TA62";break;
    case "Elévateur avec chauffeur sup hors":document.prestations_tvd.texter49.value="TA624";break;
    case "Reprise de racc raccour":document.prestations_tvd.texter49.value="TA52";break;
    case "Reprise de racc allongement":document.prestations_tvd.texter49.value="TA53";break;
    case "Pose de câble standart RG6":document.prestations_tvd.texter49.value="TA510";break;
    case "Pose de câble haute perfo RG11":document.prestations_tvd.texter49.value="TA511";break;
    default:document.prestations_tvd.texter49.value="Un choix svp.";break;
    }
    }
     
    //Fin des menu déroulant....
     
    //fonction vérification des champs (chantier et fin).
    function check1() {
      if (document.prestations_tvd.chantier.value == '') {
        alert('Référence chantier obligatoire pour la facturation.');
        document.prestations_tvd.chantier.focus();
        return false;
      }
      if (document.prestations_tvd.fin.value == '0') {
        alert('Merci de spécifier si le chantier est toujours en cours ou terminé ?.');
        document.prestations_tvd.fin.focus();
        return false;
      }
     
      return true;
    }
    Dans l'exemple ici je voudrais rendre un champs obligatoire quand l'option
    TA511 est selectionner

    D'avance merci
    Merci beaucoup, et pour répondre à ta question mon menu est:
    L'utilisateur choisie dans le menu la définition et le code TA... s'inscrit dans un champs texte alors c'est la seule solution que j'ai trouvé MAIS je suis ouvert à toutes proposition voici le code complet d'un menu HTML +js
    html
    <select name="compris[1]" onchange="menu_ld()" id="compris" size="1">
    <option value="selectect">Votre choix ?</option>
    <option value="Long totale aérien 7118 Cuivre">Long totale
    aérien 7118 Cuivre</option>
    <option value="Déroulage câble sans porteur">Déroulage câble
    sans porteur</option>
    <option value="Equipement de pylône">Equipement de pylône
    </option>
    <option value="Pose façade">Pose façade</option>
    <option value="Jonction">Jonction</option>
    <option value="Transfert power injecteur">Transfert power
    injecteur</option>
    <option value="Placement power injecteur">Placement power
    injecteur</option>
    <option value="Connecteur">Connecteur</option>
    <option value="Démontage">Démontage</option>
    <option value="Démontage appareil">Démontage appareil
    </option>
    </select>
    et le js
    function menu_ld(){
    var indice_selectionne=document.prestations_tvd.compris.selectedIndex;
    var chango=document.prestations_tvd.compris.options[indice_selectionne].value; switch (chango){
    case "Long totale aérien 7118 Cuivre":document.prestations_tvd.texter.value="TA106";break;
    case "Déroulage câble sans porteur":document.prestations_tvd.texter.value="TA107";break;
    case "Equipement de pylône":document.prestations_tvd.texter.value="TA111";break;
    case "Pose façade":document.prestations_tvd.texter.value="TA121";break;
    case "Jonction":document.prestations_tvd.texter.value="TA141";break;
    case "Transfert power injecteur":document.prestations_tvd.texter.value="TA455";break;
    case "Placement power injecteur":document.prestations_tvd.texter.value="TA454";break;
    case "Connecteur":document.prestations_tvd.texter.value="TA151";break;
    case "Démontage":document.prestations_tvd.texter.value="TA13";break;
    case "Démontage appareil":document.prestations_tvd.texter.value="TA49";break;
    default:document.prestations_tvd.texter.value="Un choix svp.";break;
    }
    }
    Maintenant si tu connais un meilleur moyen je serais content de le connaître et merci d'avance

Discussions similaires

  1. Url de page suivant choix selection
    Par masseur dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/02/2008, 14h26
  2. masquer/afficher input name suivant selection dans une liste
    Par rvm31 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/12/2007, 19h33
  3. [PHP-JS] Champ visible suivant choix d'un select
    Par przvl dans le forum Langage
    Réponses: 2
    Dernier message: 01/10/2007, 11h16
  4. Réponses: 1
    Dernier message: 17/07/2007, 10h43

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