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 :

Appliquer regexp en fonction de choix de liste


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut Appliquer regexp en fonction de choix de liste
    voila pour un formulaire, je dois faire une liste déroulante qui permet de choisir son pays :

    - si il choisi France dans la liste, la saisie du num. de telephone sera forcée par une expres. reguliere pour saisir forcement de cette facon la : XX XX XX XX XX (chiffres separes oas espace)
    - si il choisi un autre pays, alors la saisie du num. de telephone est libre, il peut renseigner ce qu'il veut.

    j'ai commencé un code pour les express. regulieres mais je ne vois pas trop comment m'y prendre apres pour modifier dynamiquement le champs telephone comme je le souhaite.

    voila la liste déroulante du pays :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="attribute37" class="attributeinput"><option value="2" >Andorre<option value="3" >Espagne<option value="1" >France</select>

    et voila pour la textarea du numero de telephone :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function chiffres(event) {
        reg = new RegExp(/[0-9]{2}[.][0-9]{2}[.][0-9]{2}[.][0-9]{2}[.][0-9]{2}/);
        if (!reg.test(attribute21.value)){
      		//un traitement quelconque 
       	}else{
                   alert('Veuillez saisir le téléphone sous format XX.XX.XX.XX.XX');
    	  attribute21.value = "";	
               }
    }
    </script> 
    <input type=text name="attribute21"  class="attributeinput" onkeypress="chiffres(event)" size="40"  maxLength="20" value="">
    Mais deja je ne sais pourquoi, mes restrictions de l'expression reguliere ne fonctionne pas, le code me semble correct pourtant..
    Voila sauriez vous ce qui ne va pas, et auriez vous une idée pour appliquer l'expression reguliere seulement si on choisi France dans la liste, sans rafraichir la page.
    Merci d'avance de votre aide.

  2. #2
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (select.options[s.selectedIndex].value="xxx") {
    } else {
    }

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    bjour fremy, hum desolé mais je n'ai pas tres bien compris ton code, c'est ce qui permet d'appliquer l'expression reguliere seulement si on choisi France dans la liste ? ca donnerait koi avec mon exemple en fait ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    RE,

    bon j'ai testé differentes soluces mais sans succes. Pourriez vous me dire si la procedure est correcte, et ce qu il faut modif niveau syntaxe ??

    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
     Dans quel pays habitez vous ?
      </td>
      <select name="attribute37"  ><option value="france" >france<option value="belgique" >belgique<option value="suisse" >suisse</select>
    <script>
     
    if (select.options[s.selectedIndex].value="france") {
     
    //function qui force a saisir des chiffres, mais bugé sous FF
    function chiffres(event) {
        reg = new RegExp(/[0-9]{2}[.][0-9]{2}[.][0-9]{2}[.][0-9]{2}[.][0-9]{2}/);
        if (!reg.test(attribute21.value)){
      		//un traitement quelconque 
       	}else{
                   alert('Veuillez saisir le téléphone sous format XX.XX.XX.XX.XX');
    	  attribute21.value = "";	
               }
     
    <input type=text name="attribute21"   size="40"  onKeyPress="chiffres(event)" maxLength="20" value="">
     
    }
     
    } else {
     
    <input type=text name="attribute21"   size="40"   maxLength="20" value="">
    }
     
     
     </script>

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    Fremy pourrais tu un peu detailler ton code please ? enfin ou faudrait t'il le placer par rapport au code que j'ai et ce qu'il y'aurait a modifer dedans.. merci d avance.

  6. #6
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    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 ValidatePhone(input,span) {
        if (doitVerrifier) {
            if (ok) {
                span.innerHTML="Numero de telephone <b>valide</b> !"
                return true;
            } else {
                span.innerHTML="Numero de telephone <b>invalide</b> !"
                input.focus()
                retrun false;
            }
        } else {
           span.innerHTML="<b>Aucune validation</b> ne s'applique pour votre pays";
           return true;
        }
    }

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    Bjour, bon merci de l'aide Fremy. mais je n'ai pas encore reussi a faire fonctionner avec mon code. Tout d'abord le "doitVerifier correspond a quoi ? je n'ai pas a le changer ? Et
    dans le second IF, j'ai mis la condition pour le pays, mais la syntaxe est t elle bonne ? enfin sauriez vous la fonction qui va bien pour effectuer une expression reguliere sur un champs texte sans que cela bug ?
    (j'en avais testé une venant du forum mais qui ne fonctionne pas sous FF) Voila d'avance, Merci bcp pour votre aide.

    Dans quel pays habitez vous ?

    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
    <select name="attribute37"  ><option value="france" >france<option value="belgique" >belgique<option value="suisse" >suisse</select>
    <script>
    function ValidatePhone(input,span) {
        if (doitVerrifier) {
            if (attribute37 = "france") {
                span.innerHTML="Numero de telephone <b>valide</b> !"
                return true;
            } else {
                span.innerHTML="Numero de telephone <b>invalide</b> !"
                input.focus()
                retrun false;
            }
        } else {
           span.innerHTML="<b>Aucune validation</b> ne s'applique pour votre pays";
           return true;
        }
    }
    </script>
    </body>

  8. #8
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    doitVerrifer : si le numero de tel est francais
    ok : si il est francais, est-il valide ?

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    lol fremy les détails, tu t'exprimes juste en boucles et conditions en fait oO ? désolé...mais si tu ne me mets pas d'exemple j'aurai du mal a comprendre...

    Au niveau de la syntaxe if (attribute37 = "france") , cela est il correct ?

    Le doitverifier corespond au choix de la 1ere liste déroulante (le pays choisi est France par ex.), mais dans ce cas la le OK correspond a quoi ? Bref si l'on pourrait m'eclairer un peu ce serait simpa la..

  10. #10
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Ben a ta RegExp...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (ok) {
       //Le n° de tel est JUSTE
    } else { /* Le n° de tel est FAUX */ }
    EDIT :
    Ben non je fais rarement des phrases complete : le codes les fait pour moi

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    ok fremy pour la condition ca je vois bien mais par quoi je dois remplacer le Ok et doisVerifier ! ?

    Le Ok correspond la regExp ! ? c'est pas a mettre dans la boucle ou est placé le Numero de telephone <b>valide</b> ! plutot non ? et si on pourrait repondre aux questions d'avant aussi lol ce serait simpa keu meme...

  12. #12
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Ben enfin, c'est pourtant simple...

    SI tu est francais, tu DOIS VERRIFIER le numero... Ben alros tu remplace DOITVERRIFIER par la condition qui verrifie si le numéro est francais...

    SI tu est francais, et que ton numero est OK, alors return true... Ben alors tu remplace OK par lo condition qui verrifie si le numéro est OK...

    C'est si dur que ca

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    Re, j'ai testé un bout de code, mais deja ma regexp (pour forcer a saisir de la forme XX XX XX XX XX) ne fonctionne pas :/ Ensuite pourrai t on m filer un coup d main pour modifier pour que si 'on choisisse bas rhin, la regexp s'applique, sinon, on permet de saisir ce qu on veut dedans :


    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
    <select name="departement" id="departement">
     
                  <option value="67">Bas-Rhin (67)</option>
                      <option value="68">Haut-Rhin (68)</option>
                    </select>
    <script>
    function chiffres(event) {
        reg = new RegExp(/[0-9]{2}[.][0-9]{2}[.][0-9]{2}[.][0-9]{2}[.][0-9]{2}/);
        if (!reg.test(attribute21.value)){
      		//un traitement quelconque 
       	}else{
                   alert('Veuillez saisir le téléphone sous format XX.XX.XX.XX.XX');
    	  attribute21.value = "";	
               }
    }
    </script> 
     
    <input type=text name="attribute21"  class="attributeinput" onkeypress="chiffres(event)" size="40"  maxLength="20" value="">
    Merci d avance de laide/

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    toujours po trouve pour une regexp valide et pour le choix de listes du coup

  15. #15
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Pour la regExp : remplace les [.] par \\.

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    alors j'ai remplacé ca, mais toujours aucun effet, je ne sais pas si ca vient du choix dans la liste ou une mauvaise syntaxe, quelqu un aurait une idée ??
    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
     
    <select name="departement" id="departement">
     
                  <option value="67">Bas-Rhin (67)</option>
                      <option value="68">Haut-Rhin (68)</option>
                    </select>
    <script>
    function chiffres(event) {
        reg = new RegExp(/[0-9]{2}\\[0-9]{2}\\[0-9]{2}\\[0-9]{2}\\[0-9]{2}/);
        if (!reg.test(attribute21.value)){
      		//un traitement quelconque 
       	}else{
                   alert('Veuillez saisir le téléphone sous format XX.XX.XX.XX.XX');
    	  attribute21.value = "";	
               }
    }
    </script> 
     
    <input type=text name="attribute21"  class="attributeinput" onkeypress="chiffres(event)" size="40"  maxLength="20" value="">

  17. #17
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    lol j'avai oublié de le recopier en postant , mais oui j avais mis les points, et toujours aucun effet Frremy pourrai tu me dire a l okazion koi modifier pour appliquer le regexp uniquemenent quand on chois le haut rhin par hasard ?
    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
     
    <select name="departement" id="departement">
     
                  <option value="67">Bas-Rhin (67)</option>
                      <option value="68">Haut-Rhin (68)</option>
                    </select>
    <script>
    function chiffres(event) {
        reg = new RegExp(/[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}/);
        if (!reg.test(attribute21.value)){
      		//un traitement quelconque 
       	}else{
                   alert('Veuillez saisir le téléphone sous format XX.XX.XX.XX.XX');
    	  attribute21.value = "";	
               }
    }
    </script> 
     
    <input type=text name="attribute21"  class="attributeinput" onkeypress="chiffres(event)" size="40"  maxLength="20" value="">
    Merci bcp d ton aide.

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    Quelqu'un aurait une idée pour la bonne syntaxe a avoir pour la saisie de numeros de type : XX XX XX XX XX par hasard ?

    Et pareil pour appliquer le regexp uniquemenent quand on chois le haut rhin par exemple ? quelqu'un pourrait il montrer ca pleease ?

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    bon j'en suis tjs au meme point . Je tente 1001 choses mais rien n'y fait. La regexp ne marche tjs pas, et je ne vois toujours pas comment appliquer cette regexp juste si on choisi haut rhin par exemple.
    Si quelqu'un passe par la, pourriez vous essayer de filer un coup de main ? Je desespere vraiment la.. ://


    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 = "form1" action "localhost/lists/">
    <select name="departement" id="departement">
     
                  <option value="67">Bas-Rhin (67)</option>
                      <option value="68">Haut-Rhin (68)</option>
                    </select>
    <script>
    function chiffres(event) {
        reg = new RegExp(/[0-9]{2}[.][0-9]{2}[.][0-9]{2}[.][0-9]{2}[.][0-9]{2}/);
        if (!reg.test(attribute21.value)){
            //un traitement quelconque
          }else{
                   alert('Veuillez saisir le téléphone sous format XX.XX.XX.XX.XX');
         document.form1.attribute21.value = "";   
               }
    }
    </script>
     
    <input type=text name="attribute21"  class="attributeinput" onkeypress="chiffres(event)" size="40"  maxLength="20" value="">
    </form>

Discussions similaires

  1. [XL-2003] Auto population de cellule en fonction de choix de liste déroulante
    Par benharperr dans le forum Excel
    Réponses: 2
    Dernier message: 24/06/2010, 06h37
  2. Images en fonction de choix dans listes déroulantes
    Par FCL31 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/03/2010, 17h27
  3. Images en fonction de choix dans liste déroulantes
    Par FCL31 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/03/2010, 16h08
  4. Réponses: 1
    Dernier message: 21/08/2008, 11h35

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