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 :

[RegExp]Contrôle dynamique de champs


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Par défaut [RegExp]Contrôle dynamique de champs
    Salut à tous !

    J'ai un petit souci javascript et je n'en voit pas la raison !

    J'ai un tableau qui contient plusieurs input, et avec le onblur je teste e qui a été rentré ou non.
    Code HTML:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <body>
    This is my HTML page. <br>
     
        <input type="text" id="inputText1" onblur="javascript:fieldControl('inputText1','2');">
        <input type="text" id="inputText2" onblur="javascript:fieldControl('inputText2','3');">
        <input type="text" id="inputText3" onblur="javascript:fieldControl('inputText3','5');">
      </body>
    </html>

    CODE JS:
    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
    <script language="Javascript">
    		function fieldControl(id, i1)
    			{	
    				alert(i1);
    				var fieldValue = document.getElementById(id).value;
    				alert(fieldValue);
    				var pattern = /([0-9]{1,3})|([0-9]{1,3}[.][0-9]{0,2})/;
    				alert(pattern);
    				if(pattern.test(fieldValue)){
    					alert("ça marche ");
    				} else {
    					alert("ca marche pas ");
    				}
    			}	
    	</script>
    Dans cette pattern, je veux que mon champs contienne exclusivement des chiffres et le texte doit être du type :

    -12
    -123
    -123.12
    -12.02

    Les champs du style :

    -ahvbae
    -123456
    -18aelé=)

    Doivent renvoyé une erreur.

    Problème: Pour détecter les caractères cela fonctionne mais pour le nombre de chiffre tapé (ici 3 autorisés), cela ne fonctionne pas !! (il dit " Ca marche" et non le contraire ...)

    Auriez vous une idée ?

    Merci pour vos réponses !!!

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    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
    16
    17
    18
    19
    20
    21
    22
    <script language="Javascript">
    		function fieldControl(val)
    			{	
    				var fieldValue = val;
    				var pattern = new RegExp(/([0-9]{1,3}[^\.]$)|([0-9]{1,3}[.][0-9]{0,2}[^\.]$)/);
    				if(pattern.test(fieldValue)){
    					alert("ça marche ");
    				} else {
    					alert("ca marche pas ");
    				}
    			}	
    	</script>
     
     
    </head>
     
    <body>
     <input type="text" id="inputText1" onblur="fieldControl(this.value);">
        <input type="text" id="inputText2" onblur="fieldControl(this.value);">
        <input type="text" id="inputText3" onblur="fieldControl(this.value);">
     
    </body>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Par défaut
    Tout d'abord merci d'avoir répondu !!

    Le contrôle de caractères fonctionne, mais j'ai toujours ce " Ca marche " qui apparait quand j'ai plus de 3 chiffres entrés !!

    De plus, il faut que j'ai un nombre de chiffre max dynamique, donc la pattern devrait plutôt avoir une tête de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var pattern = new RegExp("^([0-9]{0,"+i1+"})|([0-9]{0,"+i1+"}[.][0-9]{0,2})$", "g");
    A ton avis ? ou vos avis ?!

  4. #4
    Membre éclairé Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Par défaut
    Je sais pas si j'ai été clair, en fait le i1 est une variable supplémentaire de la fonction, voilà ce que ca devrait être :

    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
    <script language="Javascript">
     
    		function fieldControl(val, i1)
    			{	
    				alert(i1);		
    				var fieldValue = val;
    				alert(fieldValue);
    				var pattern = new RegExp("([0-9]{1,"+i1+"}[^\.]$)|([0-9]{1,"+i1+"}[.][0-9]{0,2}[^\.]$)", "g");
    				alert(pattern);
    				if(pattern.test(fieldValue)){
    					alert("ça marche ");
    				} else {
    					alert("ca marche pas ");
    				}
    			}	
    	</script>
      </head>
      <body>
        <input type="text" id="inputText1" onblur="javascript:fieldControl(this.value, 2);">
    	<input type="text" id="inputText2" onblur="javascript:fieldControl(this.value, 3);">
    	<input type="text" id="inputText3" onblur="javascript:fieldControl(this.value, 5);">
      </body>
    </html>
    Ce code fonctionne pour détecter les caractères alphabétiques et spéciaux.
    Mais il n'arrive pas à limiter le champ aux nombres désirés (c'est à dire 'i1'
    )

  5. #5
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    ce n'est pas la variable qui me gène. mais la regExp en elle même ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre éclairé Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    ce n'est pas la variable qui me gène. mais la regExp en elle même ...
    Ouai moi aussi, j'ai essayé sous différente manières mais rien n'y fait

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajout dynamique de champs de type file dans un formulaire !
    Par stitch dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/11/2005, 11h18
  2. Parcours dynamique des champs
    Par cosmos38240 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/11/2005, 14h54
  3. Réponses: 5
    Dernier message: 13/10/2005, 19h33
  4. contrôle sur un champ dans un formulaire
    Par yoline dans le forum Access
    Réponses: 6
    Dernier message: 01/10/2005, 19h23
  5. [VB.NET] Creer des contrôles dynamiquement
    Par theartist dans le forum Windows Forms
    Réponses: 4
    Dernier message: 11/01/2005, 11h42

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