Ne permettre la saisie QUE des chiffres (et touches tab, suppr, backspace, ...) [Résolu]

Messages postés
5
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
22 juillet 2009
- - Dernière réponse : buzza01
Messages postés
5
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
22 juillet 2009
- 22 juil. 2009 à 11:29
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 formObjs#input.chiffres 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 :
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 :
<form method  ="post" name="formulaire" action="creer_module_catalogue_script.php" onSubmit="return verifForm(this);">

...

"  style="width:40px; text-align:right;" onkeydown="chiffres(event)">

...

</form>
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
3
Merci
Bonjour,
onkeypress plutôt

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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 144 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Bul3
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
0
Merci
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é
Commenter la réponse de Bul3
Messages postés
5
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
22 juillet 2009
0
Merci
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.
Commenter la réponse de buzza01
Messages postés
5
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
22 juillet 2009
0
Merci
Oh autant pour moi, j'ai testé le mauvais champ... Ca marche !! MERCI !!!
Commenter la réponse de buzza01
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
0
Merci
>>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 !
Commenter la réponse de Bul3
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
0
Merci
ah... croisement des messages...
je me posais des questions
bien qu'étant sûr du code
peut-on l'être jamais totalement ?
Commenter la réponse de Bul3
Messages postés
5
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
22 juillet 2009
0
Merci
Hehe en effet ^^

Encore merci de ton aide aussi rapide !
Commenter la réponse de buzza01
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
0
Merci
>>autant pour moi
ah non ! c'est "au temps pour moi"
la syntaxe correcte ;o)
Commenter la réponse de Bul3
Messages postés
5
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
22 juillet 2009
0
Merci
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
Commenter la réponse de buzza01