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 :

N'autoriser que certains caractéres


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut N'autoriser que certains caractéres
    Bonjour à tous,


    j'ai un champ textarea et je voudrait autoriser uniquement que les 1234567890 et les "-"

    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
     
    function IntegerOnly (evt) {  
     
          evt = (evt) ? evt : ((event) ? event : null);
     
     
     
          var code = evt.keyCode;
     
     
     
          // Si la touche pressée n'appartient pas aux chiffres 1 à 9 
     
          // et que ce n'est ni la touche backspace, ni la touche TAB, ni l'une des flèches gauche/droite, ni la touche DEL,
     
          //  alors: annule la frappe.
     
          if ((code < 48 || code > 57) && (code != 38)) 
     
            { evt.returnValue = false;  // méthode pour MSIE, marche aussi avec Safari, ignorée par Firefox (aucun problème)
     
              evt.preventDefault();  // méthode pour Firefox (marche aussi avec Safari)
     
     
     
              // Manque une méthode pour Netscape (7.0) et Opera (7.0)
     
            }                                                                          
     
     
     
        }
    j'ai trouver ceci comme code, mais le probleme par exemple je suis sur un portable la touche 1 à comme affectation aussi "&".

    Avec le code ci-dessus, si j'essai azertyu.etc... ça semble marcher, mais par contre si j'appuie sur le 1 sans etre en majuscule (donc &) le & s'affiche dans le champ.

    Comment résoudre ce problème ?

    Merci

    guigui69

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    re bonjour

    J'ai trouver ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function ejs_code_clavier(keyStroke)
    	{
    	ejs_code_eventChooser = (!document.all) ? keyStroke.which : event.keyCode;
    	ejs_code_which = String.fromCharCode(ejs_code_eventChooser).toLowerCase();
    	alert('Vous avez appuyé sur la touche '+ejs_code_which);
    	var regexp = /[-0-9]+/;
    	var test = (regexp.test (ejs_code_which))? true: false; // Vaut false
    	}
    document.onkeypress = ejs_code_clavier;
    Le problème il me détecte 2 touches. exemple quand j'appuie sur le 1 il me met en alert le "1" puis le second alert le "&".
    (alors que sur le site ou j'ai trouver le code il me detecte bien une touche)
    Quel erreur est-je commis?

    Merci

    guigui69

  3. #3
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Tu n'observes que onkeypress ?
    On peut voir youye la page ?

  4. #4
    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
    mieux vaut le faire sur le onblur
    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 !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    J'ai trouver ceci comme 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
     
    function ejs_code_clavier(keyStroke)
    	{
    	ejs_code_eventChooser = (!document.all) ? keyStroke.which : event.keyCode;
    	ejs_code_which = String.fromCharCode(ejs_code_eventChooser).toLowerCase();
    	//alert('Vous avez appuyé sur la touche '+ejs_code_which);
     
    	var regexp = /[-0-9]+/;
    	var test = (regexp.test (ejs_code_which))? true: false; // Vaut false
    	//alert (test);
    	if(test == false)
    	     { keyStroke.returnValue = false;  // méthode pour MSIE, marche aussi avec Safari, ignorée par Firefox (aucun problème)
     
              keyStroke.preventDefault();  // méthode pour Firefox (marche aussi avec Safari)
     
     
              // Manque une méthode pour Netscape (7.0) et Opera (7.0)
     
            }   
    		else
    		{
    		}
    	}
    document.onkeypress = ejs_code_clavier;
    Par contre le probleme c'est qu'il affecte a tout les champs de ma page je voudrait juste qu'il realise cette fonction sur 2 champs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <td>Client:</td><td><textarea name="client_idr" id="client_idr" rows="3" cols="30" onkeyup="ejs_code_clavier(event,this.id)" ></textarea></td>
    </tr><tr>
    <td>Produit:</td><td><textarea name="produit_idr" id="produit_idr" rows="3" cols="30" onkeyup="ejs_code_clavier(event,this.id)" ></textarea></td>
    Quel partie du code je doit modifier?

    merci

    guigui69

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Par défaut
    d'accord avec spaceFrogue , t'auras juste a appliquer une regExp, et retourner e focus si ca ne convient pas

Discussions similaires

  1. [RegEx] Autoriser uniquement certains caractères
    Par HwRZxLc4 dans le forum Langage
    Réponses: 12
    Dernier message: 14/05/2009, 19h06
  2. N'autoriser que certaines IP
    Par saraza dans le forum Apache
    Réponses: 2
    Dernier message: 27/11/2008, 23h09
  3. [RegEx] Autoriser seulement certains caractères dans une chaine
    Par ptitdav80 dans le forum Langage
    Réponses: 2
    Dernier message: 03/06/2008, 20h54
  4. [RegEx] Regex : autoriser seulement certains caractères
    Par Thi0123 dans le forum Langage
    Réponses: 2
    Dernier message: 17/10/2006, 11h22

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