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

GWT et Vaadin Java Discussion :

Filtrer la saisie sur TextBox


Sujet :

GWT et Vaadin Java

  1. #1
    Membre actif Avatar de Torg666
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 230
    Points : 254
    Points
    254
    Par défaut Filtrer la saisie sur TextBox
    Voila dans plusieurs textbox je souhaite limiter la saisie pour quelle n'accepte que des entier positif.
    alors j'ai un code qui marche plutôt pas mal, seulement il laisse passer les caracteres suivant, entre autre: &'($.
    Mon code (classique c'est dans la javadoc de GWT):
    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
     
    protected void saisiNumeric(char keyCode,TextBox sender){
     if (!Character.isDigit(keyCode) 
         && (keyCode != (char) KeyboardListener.KEY_TAB)
         && (keyCode != (char) KeyboardListener.KEY_BACKSPACE)
         && (keyCode != (char) KeyboardListener.KEY_DELETE) 
         && (keyCode != (char) KeyboardListener.KEY_ENTER) 
         && (keyCode != (char) KeyboardListener.KEY_HOME) 
         && (keyCode != (char) KeyboardListener.KEY_END)
         && (keyCode != (char) KeyboardListener.KEY_LEFT) 
         && (keyCode != (char) KeyboardListener.KEY_UP)
         && (keyCode != (char) KeyboardListener.KEY_RIGHT) 
         && (keyCode != (char) KeyboardListener.KEY_DOWN)) {
           sender.cancelKey();
     }else{
           this.activerbouton(true);
     }
    }
    Son usage:
    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
     
    @Override
    public void onKeyPress(Widget sender, char keyCode, int modifiers) {
     if(sender.getClass().equals(TextBox.class)){
      if(sender.equals(IHMBoitier.this.getTextBoxNumBoitier())
         ||sender.equals(IHMBoitier.this.getTextBoxMotPasse())
         ||sender.equals(IHMBoitier.this.getTextBoxCodePin())
         ||sender.equals(IHMBoitier.this.getTextBoxNumSerie())
         ||sender.equals(IHMBoitier.this.getTextBoxTempsInterTrames())
         ||sender.equals(IHMBoitier.this.getTextBoxTempsMiseVeille())){
       IHMBoitier.this.saisiNumeric(keyCode, (TextBox)sender);
      }else{
       IHMBoitier.this.activerbouton(true);
      }
     }
    }
    je souhaiterai evidement pouvoir interdire la saisie de ces caracteres!

  2. #2
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Deux solutions :

    • Interdire le code des caractères que tu ne souhaites pas : &'($
    • Faire l'inverse. Autoriser les chiffres de 0 à 9, le - et le + en tête, le caractère séparateur . ou, et les touches de déplacements, le backspace, le supp et l'enter. Interdire le reste.

  3. #3
    Membre actif Avatar de Torg666
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 230
    Points : 254
    Points
    254
    Par défaut
    Voilà, j'ai trouvé une solution:
    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
     
    /**
     * Fonction de verification de saisi: numeric seulement 
     * @param keyCode
     * @param sender
     */
    protected void saisiNumeric(char keyCode,TextBox sender){
     if ((!Character.isDigit(keyCode)) 
      && (keyCode != (char) KeyboardListener.KEY_TAB)
      && (keyCode != (char) KeyboardListener.KEY_BACKSPACE)
      && (keyCode != (char) KeyboardListener.KEY_DELETE) 
      && (keyCode != (char) KeyboardListener.KEY_ENTER) 
      && (keyCode != (char) KeyboardListener.KEY_HOME) 
      && (keyCode != (char) KeyboardListener.KEY_END)
      && (keyCode != (char) KeyboardListener.KEY_LEFT) 
      && (keyCode != (char) KeyboardListener.KEY_UP)
      && (keyCode != (char) KeyboardListener.KEY_RIGHT) 
      && (keyCode != (char) KeyboardListener.KEY_DOWN)) {
       sender.cancelKey();
     }else if(keyCode=='&'
      ||keyCode=='('
      ||keyCode=='\''
      ||keyCode=='$'){
       sender.cancelKey();
     }
    }
    Neanmoins ce comportement est étrange, surtout que le ( passe alors que ) ne passe pas. Si quelqu'un à une idée d'où vient cette aberration hésitez pas!

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Points : 153
    Points
    153
    Par défaut
    Attention, entre ie et firefox, les comportements sont différents...

  5. #5
    Membre actif Avatar de Torg666
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 230
    Points : 254
    Points
    254
    Par défaut
    Bizarement avec IE ca passe niquel... par contre firefox... c'est une autre histoire, en fait y a pas grand chose qui ce passe bien a part lancer l'appli

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

Discussions similaires

  1. contrôle saisie sur textbox
    Par mehdi.cheddani dans le forum VB.NET
    Réponses: 4
    Dernier message: 01/04/2013, 13h19
  2. Controle saisie sur TextBox
    Par Addict` dans le forum Windows Forms
    Réponses: 1
    Dernier message: 08/04/2009, 17h22
  3. Filtrer un dataGridView sur une textbox
    Par beren.kei dans le forum Windows Forms
    Réponses: 12
    Dernier message: 04/06/2008, 12h54
  4. Focus sur textbox après saisie
    Par ogeiger dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/03/2008, 16h02
  5. Comment limiter la saisie sur une TextBox ?
    Par dcollart dans le forum ASP.NET
    Réponses: 5
    Dernier message: 27/11/2006, 14h41

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