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 :

Empecher la frappe de caractères


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut Empecher la frappe de caractères
    Bonjour,

    J'ai fais une petite fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    /** Function to strip the characteres (and allow only number) on a field */
    function stripCharacters(event)
    {
    	if(event.keyCode < 47 || event.keyCode > 57)
    	{
    		if(event.keyCode!=116 && event.keyCode!=37 && event.keyCode!=39 ) 
    			event.returnValue = false; 
    	}
    	if(event.which < 47 || event.which > 57) // disable all alphanumeric char
    	{
    		if(event.which!=8 && event.which!=13 && event.which!=116) // able del, enter and refresh keys
    			return false;
    	}
    }
    appelé à chaque fois qu'une touche est préssée. Mais voila, je cherche désespérement à laisser la possibilité d'appuyer sur del (ou suppr, selon le clavier), et les touches multidirectionnelles gauche et droites, qui ont respectivement pour keyCode 46, 37 et 39.

    mon premier réflexe était de rajouté une condition au premier if :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    event.keyCode!=46 && event.keyCode!=37 && event.keyCode!=39
    mais ça marche pas :ouin

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    event.keyCode!=46 || event.keyCode!=37 || event.keyCode!=39

  3. #3
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    je voie pas la différences d'utiliser un || ou un &&, puisque dans ce cas il n'y a jamais de collision

    mais bref, ce n'est pas ça

    ça ne fonctionne pas

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(event.keyCode!=46 && event.keyCode!=37 && event.keyCode!=39 ) 
    			return false;
    ne marche pas non plus ?

    EDIT
    returnValue ne fonctionne que sous IE non ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    ben il semble que non ff 3 prend en compte le returnValue

  6. #6
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    [mode hacker]et si l'utilisateur appuiait sur Alt pressé + 64?[/mode hacker]

  7. #7
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    c'est ce que je suis en train de voir : la combinaison de touche

    j'ai une solution, elle est fonctionnelle elle comprend désormais les entrées tab ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if(!(evt.ctrlKey || evt.altKey || evt.shiftKey || evt.keyCode > 90 || (evt.keyCode<47 && evt.keyCode>32) || 
    	(evt.keyCode==9 && evt.which==0) || (evt.keyCode==8 && evt.keyCode==8) || (evt.keyCode==13 && evt.keyCode==13)
    	|| evt.keyCode==37)) // don't execute denied for all combination, add none alphabetical button, and all function button
    	{
    		if(evt.keyCode < 46 || evt.keyCode > 57)
    		{
    			evt.returnValue = false;
    		}
    		if(evt.which < 46 || evt.which > 57)
    		{
    			return false; 
    		}
    	}
    C'est pas super bien codé mais c fonctionnel

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/04/2012, 00h00
  2. Empecher la saisie de caractère accentué
    Par mcorvaisier dans le forum IHM
    Réponses: 10
    Dernier message: 23/04/2009, 09h54
  3. traitement des frappes de caractères au clavier
    Par marion5515 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 27/04/2007, 09h04
  4. [VBA-E]Déclenchement combobox sur la frappe des caractères
    Par Lexot2 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/10/2006, 01h55
  5. [VB.NET] Empecher la saisie de caractère spéciaux
    Par bloody22 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 28/07/2005, 11h09

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