begin process at 2012 05 29 11:00:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Autre

 > 

Ne permettre la saisie QUE des chiffres (et touches tab, suppr, backspace, ...)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ne permettre la saisie QUE des chiffres (et touches tab, suppr, backspace, ...)

mercredi 22 juillet 2009 à 10:48:44 | Ne permettre la saisie QUE des chiffres (et touches tab, suppr, backspace, ...)

buzza01

Bonjour,

je viens vous voir car je n'arrive pas à faire en sorte que "ma" fonction ne permette la saisie que de chiffres.
Il y a une fonction dans la FAQ, dont je me suis plus que largement inspiré mais j'ai dû la modifier pour autoriser l'utilisation d'autres caractères (le numpad, suppr, backspace, ...) et donc utiliser "onkeydown" au lieu de "onkeypress". Le problème maintenant est que quand on autorise la saisie des chiffres (au dessus des lettres, pas ceux du numpad), les caractères &é"'(-è_çà sont aussi autorisés.

Lors de mes recherches, je me suis aperçu que le keyCode et le charCode étaient différents pour "1" et "&" par exemple, et de même pour les caractères suivants. Donc je pense qu'il y a certainement une solution en passant par là, mais je n'arrive pas à trouver comment faire...

Merci d'avance de vos réponses.


La fonction javascript :

Code Javascript :
function chiffres(event)

{
// Compatibilité IE / Firefox
if(!event&&window.event)
{
event=window.event;
}
// IE
if((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105) && (event.keyCode != 8) && (event.keyCode != 9) && (event.keyCode != 35) && (event.keyCode != 36) && (event.keyCode != 37) && (event.keyCode != 39) && (event.keyCode != 46))
{
event.returnValue = false;
event.cancelBubble = true;
}
// DOM
if((event.which < 48 || event.which > 57) && (event.which < 96 || event.which > 105) && (event.which != 8) && (event.which != 9) && (event.which != 35) && (event.which != 36) && (event.which != 37) && (event.which != 39) && (event.which != 46))
{
event.preventDefault();
event.stopPropagation();
}
}



Et le code html :
Code HTML :
<form method="post" name="formulaire" action="creer_module_catalogue_script.php" onSubmit="return verifForm(this);">


...

<input type="text" name="quantiteNouveauModule" value="<?php echo $quantiteNouveauModule;?>" style="width:40px; text-align:right;" onkeydown="chiffres(event)">

...

</form>

mercredi 22 juillet 2009 à 11:00:35 | Re : Ne permettre la saisie QUE des chiffres (et touches tab, suppr, backspace, ...)

Bul3

Membre Club
Réponse acceptée !

Bonjour,
onkeypress plutôt


<input type='text' value=''
onKeypress="if((event.keyCode < 45 || event.keyCode > 57) &&
event.keyCode != 8 &&
event.keyCode != 0) event.returnValue = false;
if((event.which < 45 || event.which > 57) &&
event.which != 8 && event.which != 0 ) return false;">


Cordialement [mon Site] [M'écrire] Bul

mercredi 22 juillet 2009 à 11:06:06 | Re : Ne permettre la saisie QUE des chiffres (et touches tab, suppr, backspace, ...)

Bul3

Membre Club


remarque.... le collé du copié/collé

autorise malgré tout autre chose

===> onpaste="return false;" par exemple
ou alors
mémoriser le contenu,
faire le collé
s'il n'y a pas que des chiffres
remettre le contenu mémorisé

mercredi 22 juillet 2009 à 11:11:48 | Re : Ne permettre la saisie QUE des chiffres (et touches tab, suppr, backspace, ...)

buzza01

Bonjour,

Merci de ta téponse Bul3 rapide, mais le problème reste malheureusement le même : la saisie des caractères spéciaux &é"'(-è_çà est toujours possible :(

Pour le copier-coller, les personnes pour qui je développe ne l'utiliseront pas à priori, ce script est plus fait pour éviter l'erreur d'inattention que la volonté d'entrer de mauvaises données.

mercredi 22 juillet 2009 à 11:15:05 | Re : Ne permettre la saisie QUE des chiffres (et touches tab, suppr, backspace, ...)

buzza01

Oh autant pour moi, j'ai testé le mauvais champ... Ca marche !! MERCI !!!

mercredi 22 juillet 2009 à 11:19:53 | Re : Ne permettre la saisie QUE des chiffres (et touches tab, suppr, backspace, ...)

Bul3

Membre Club


>>mais le problème reste malheureusement le même :
>>la saisie des caractères spéciaux &é"'(-è_çà
>>est toujours possible :(
pas du tout !?!
regarde les tests fait : on autorise uniquement
( >= 45 et <= 57 ) ou = 8 ou = 0
ou alors tu n'essayes pas tel quel ce que j'ai mis !

mercredi 22 juillet 2009 à 11:22:44 | Re : Ne permettre la saisie QUE des chiffres (et touches tab, suppr, backspace, ...)

Bul3

Membre Club

ah... croisement des messages...
je me posais des questions
bien qu'étant sûr du code
peut-on l'être jamais totalement ?

mercredi 22 juillet 2009 à 11:24:10 | Re : Ne permettre la saisie QUE des chiffres (et touches tab, suppr, backspace, ...)

buzza01

Hehe en effet ^^

Encore merci de ton aide aussi rapide !

mercredi 22 juillet 2009 à 11:24:37 | Re : Ne permettre la saisie QUE des chiffres (et touches tab, suppr, backspace, ...)

Bul3

Membre Club

>>autant pour moi
ah non ! c'est "au temps pour moi"
la syntaxe correcte ;o)

mercredi 22 juillet 2009 à 11:29:27 | Re : Ne permettre la saisie QUE des chiffres (et touches tab, suppr, backspace, ...)

buzza01

En fait les deux sont d'usage, même si "au temps pour moi" est recommandé par l'Académie Française ^^

On dévie



Cette discussion est classée dans : code, chiffres, keycode, event, which


Répondre à ce message

Sujets en rapport avec ce message

Urgent projet fin d'études thème:Construire le code barre. [ par amazir ] Chèr amis j'ai un projet fin d'études dont je ne sais pas oû commencer .Veuillez m'aider, merci infiniment. Projet Changer un keyCode sous firefox [ par vandoor ] Bonjour, je souhaite changer tous les '.' en ',' par une fonction javascript. ça fonctionne très bien sous IE mais pas sous FF! Quelqu'un pourrait-i Comment executer le code d'un bouton en appuyant sur une touche? [ par LionHearth ] Bonjour,Je cherche à appeler la procédure click d'un bouton en appuyant sur une touche.Je m'explique... Je dois executer le code d'un bouton annuler e Prototype: problème avec "event" [ par bumbo ] Bonjour, J'ai un problème avec le code suivant: [code=js] var myArray = $('body').getElementsBySelector('[infobulle]'); myArray.each(function( Calcule Numéro de Sécurité Sociale [ par Morocco13 ] Bonjour, ci-dessous un code qui calcule la clé du numéro de sécurité sociale français.Il n'y a aucun problème dans le code, mais ma question serait do détecter la touche imprim écran [ par rinuom99 ] Bonjour, a fin de détecté la touche imprim écran j'ai utilisé le script suivant : Code : [code=js] processKeyEvent = function(eventType, event) { Déplacé une info-bulle [ par Xiarea ] Bonjour, J'essai de déplacer une info bulle (un span), sans grand résultat pour le moment... Je souhaite que l'utilisateur puisse déplacer le conten Comment activer l'event handler d'un champ texte (formulaire)? [ par Simbabbad ] Bonjour, j'essaie de mettre en place bénévolement pour un forum auquel je participe un moyen pratique de changer la couleur de police et la couleur d Fermeture de IE par ALT+F4 [ par tofyz ] Bonjour à tous,Je suis nouveau sur ce forum et j'espère que ma question ne vous paraîtra pas trop débile!Je souhaite pour un intranet inhiber l'action problème avec balise tag [ par bumbo ] Bonjour a tous, J'ai un petit soucis de compatibilité avec firefox, je m'explique: Soit une image dans une page html avec un tag: [code=html] [/cod


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,418 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales