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

Signaler
Messages postés
5
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
22 juillet 2009
-
Messages postés
5
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
22 juillet 2009
-
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>

9 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
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
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
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é
Messages postés
5
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
22 juillet 2009

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.
Messages postés
5
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
22 juillet 2009

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

Hehe en effet ^^

Encore merci de ton aide aussi rapide !
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
>>autant pour moi
ah non ! c'est "au temps pour moi"
la syntaxe correcte ;o)
Messages postés
5
Date d'inscription
vendredi 8 mai 2009
Statut
Membre
Dernière intervention
22 juillet 2009

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