Les Snippets

Connexion

N'autoriser que la Saisie de chiffres dans un champ texte

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 12/04/2006 10:22:04 et initié par bultez [Liste]
Date de mise à jour : 28/08/2006 10:55:17
Vue : 46889
Catégorie(s) : Chaîne de caractères
Langages dispo pour ce code :
- Javascript
- VB6, VBA
- Javascript
- C# 1.x, C# 2.x
- Java
- Windev
- Delphi 5
- Javascript
- VB 2005, VB 2008



Langage : Javascript
Date ajout : 12/04/2006
Posté par bultez [Liste]

 ////////////////////////////////////////////////////////
 // plutot que de contrôler à posteriori le contenu d'un champ de    //
 //  saisie pour voir s'il ne contient que les caractères autorisés,    //
 //  pourquoi ne pas faire ce contrôle au fûr et à mesure en           //
 //  rejetant immédiatement les caractères interdits.                    //
 // un ch'tit exemple on l'on n'autorise que la saisie de Chiffres //
 ////////////////////////////////////////////////////


<script type="text/javascript"><!----------------
//~~~~~~~~~~~~~~~~~~~~~~~~~~ #        #                             #
function SUC(champ) //~~ initialisation ~~ Saisir Uniquement des Chiffres
//~~~~~~~~~~~~~~~~~~~~~~~~~~ #        #                             #
{
 this.champ=champ;
 var Lui=this;
 var ie = false; /*@cc_on ie = true; @*/
 if ( ie ) {
     this.champ.onkeypress = Lui.IE;
    }
 else  { 
     this.champ.onkeyup = function(e)
      {
       Lui.FF(this, e);
      }
    }
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SUC.prototype.IE=function() //~~ pour Internet Explorer ~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
 if ( event.keyCode<0x30 || event.keyCode>0x39 )
 {
  event.returnValue= false;
 }
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SUC.prototype.FF=function(zone,evt) //~~ pour FireFox ~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
 if ( evt.which<0x30 || evt.which>0x39 )
 {
  zone.value=zone.value.replace(/[^0-9]/g,"");
 }
}
// ----------------></script>


  //////////////////////////////////////
  // Exemple d'utilisation                                     //
  // <form  name="frm">                                 //
  //  <input name="txt"                                    //
  //    type="text" />                                       //
  // </form>                                                     //
  // <script type="text/javascript">      //
  //  new SUC( document.frm.txt );        //
  // </script>                                             //
  ///////////////////////////////


Langage : VB6 , VBA
Date ajout : 17/04/2006
Posté par WhiteDwarf [Liste]
DateMAJ : 28/08/2006
Private Sub BoiteAChiffres_KeyPress(KeyAscii As Integer)
'Keypress

Dim chaine
chaine = "0123456789 "
If InStr(1, chaine, Chr(KeyAscii)) = 0 And Not KeyAscii = 8 Then

    'KeyAscii = 8 est la touche Del
    'On bloque ce qui n'est pas compris dans la variable chaine sauf la touche Del

    Beep
    KeyAscii = 0
    'On assign un KeyAscii vide à la text box
End If
End Sub
Remarque :
Le controle text en question ici se nomme BoiteAChiffres
Langage : Javascript
Date ajout : 17/04/2006
Posté par hdh [Liste]
<input type='text' name='fax' value=''   onKeypress="if((event.keyCode < 45 || event.keyCode > 57) &&  event.keyCode != 32 &&  event.keyCode != 8 &&  event.keyCode != 0) event.returnValue = false; if((event.which < 45 || event.which > 57)  &&  event.which != 32  &&  event.which != 8  &&  event.which != 0 ) return false;">
Langage : C# 1.x , C# 2.x
Date ajout : 29/04/2006
Posté par Bidou [Liste]

Plutôt que de se lancer dans la programmation d'une TextBox qui n'accepte que des valeurs numériques, on préfère utiliser le Control tout fait (qui se trouve dans la boîte à outils) : NumericUpDown

Langage : Java
Date ajout : 29/05/2006
Posté par Taranael [Liste]
import javaw.swing.*;
JTextField champ = new JTextField (20);
champ.addFocusListener (
    new FocusAdapter {
        public void focusLost (FocusEvent f) {
            if ( ! ((JTextField) f.getComponent()).getText().matches("[0-9]*") {
                JOptionPane.showMessageDialog(null,"Merci de ne taper que des chiffres.","Erreur !",JOptionPane.ERROR_MESSAGE);
                ((JTextField) f.getComponent()).setText("");
            }
        }
    } );

Remarque :
La méthode utilisée ici est particulièrement bourrain ... on peut bien sûr créer une classe à côté qui dérive de FocusAdapter ou implémente FocusListener.
Langage : Windev
Date ajout : 15/06/2006
Posté par fabienlaps [Liste]
Choisir dans la description du champ le Masque de saisie prédéfinie "Chiffres".
ou utiliser par programmation la propriété ..MasqueSaisie exemple :
MonChamp..MasqueSaisie = maskNum

Langage : Delphi 5
Date ajout : 05/08/2006
Posté par f0xi [Liste]
DateMAJ : 05/08/2006
{
Declarez un gestionnaire pour l'evenement OnKeyPress du/des composants TEdit 
a controler, puis inserez le code ci dessous :
 
'0'..'9' definit les caracteres de 0 a 9 (#48..#57)
#08 est obligatoire dans ce cas pour beneficier de la touche BackSpace
}
procedure TFormX.EditNKeyPress(Sender : TObject; var Key : char);
begin
    if not ( Key in ['0'..'9',#08] ) then Key := #0;
end;

Langage : Javascript
Date ajout : 05/04/2007
Posté par stfou [Liste]

<input type="text" id="champ">
<script>
var champ=document.getElementById("champ");
champ.onkeydown=function(evt){isNaN(Number(String.fromCharCode((evt||window.event).keyCode))) ? return true : return false;}
</script>

Langage : VB 2005 , VB 2008
Date ajout : 05/02/2010
Posté par elguevel [Liste]

If Not (Char.IsNumber(e.KeyChar) Or e.KeyChar.Equals(","c) Or Char.IsControl(e.KeyChar)) Then e.Handled = True

Remarque :
A associer à l'evenement KeyPress de votre textbox

Snippets en rapport avec : Textbox, Numérique, Contrôle, Numéricité, Chiffre



Codes sources en rapport avec : Textbox, Numérique, Contrôle, Numéricité, Chiffre

{Visual Basic, VB6, VB.NET, VB 2005} FORMATER UN TEXTBOX (N'ACCEPTER QUE DES CHIFFRES)
Dans VB, le contrôle ListBox ne possède pas de propriété Format (dommage!). Si l'on veut que ce c...

{C# / C#.NET} TEXTBOX SÉQUENCE DE TOUCHES.
Voici un contrôle qui peut etre interessant à utiliser si vous avez besoin d'enregistrer et/ou d'exp...

{Visual Basic, VB6, VB.NET, VB 2005} [VB.NET] NUMERIXBOX - UNE TEXTBOX NUMÉRIQUE QUI GÈRE LES DÉCIMALES ET LES ARRONDIS
c'est un Component à utiliser en lieu et place d'un TextBox pour gérer l'affichage des numériques. ...

{Visual Basic, VB6, VB.NET, VB 2005} CONTROLE DE SAISIE TEXTBOX SOUS VISUAL STUDIO EXPRESS 2005
Ce code permet de controler le contenu de la textbox selon les choix: que numerique(virgule o...

{Visual Basic, VB6, VB.NET, VB 2005} TEXTBOX NUMÉRIQUE
Ce textbox permet la saisie de nombre uniquement. Plusieurs options : - nb de decimal - symbole ...

{C# / C#.NET} TEXTBOX : NUMERIC ET TOUCHE ENTER
Vous avez un textbox, vous voulez saisir uniquement du numérique ou bien utiliser la touche Entrer c...

{C# / C#.NET} TEXTBOX NUMÉRIQUE
Comme cette question revient sans cesse dans le forum, voici comment créer une textbox n'acceptant q...

{Visual Basic, VB6, VB.NET, VB 2005} TEXTBOX NUMERIQUE
Le code suivant permet de limiter la saisie dans un textbox à un ensemble de caractères. En particul...

{Visual Basic, VB6, VB.NET, VB 2005} CONTROLS PERSONALISÉ TEXTBOX
En ayant marre à chaque dois de devoir gérer l'événement KeyPress pour empêcher un certain type de s...

{PHP} TESTEUR DE REGEX
Dans le cadre des champs de formulaire, on contrôle la validité de l'entrée par une regex. Sauf q...