grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 510 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 12 juin 2006 - 17 h 01 m 24 s |
|
|
hello,
bon j'ai un problème à la noix que je n'arrive pas à résoudre.
J'ai un champs texte qui fait max 3 caractères ; c'est la 1ère partie d'un numéro RCS (registre du commerce) qui normalement fait 3x3 caractères sous la forme xxx yyy zzz
Ce que je voudrais c'est qu'au lieu de soumettre le form et afficher qu'il y a une erreur dans la saisie d'un des triplets si l'utilisateur tape un caractère non conforme (une lettre par exemple), l'utilisateur ne puisse que taper des chiffres. J'ai donc fait la chose suivante sur mon champs :
1. <input type="text" class="champ_onglets" name="cli_rcsnum1" style="width: 30px;" maxlength="3" onKeyPress="if (event.keyCode < 48 || event.keyCode > 57) event.returnValue = false; if (event.which < 48 || event.which > 57) return false;" />
ca ca marche...
par contre, le problème que j'ai est que du coup, comme je n'autorise que la saisie de chiffres, je ne peux plus corriger la valeur en cas d'erreur... J'ai donc du ajouter des caractères autorisés comme : delete, space, backspace. il faudrait pour bien faire ajouter aussi les flèches...
bref, ca donne :
1. <input type="text" class="champ_onglets" name="cli_rcsnum1" style="width: 30px;" maxlength="3" onKeyPress="if ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 127 && event.keyCode != 8 && event.keycode != 32) event.returnValue = false; if ((event.which < 48 || event.which > 57) && event.which != 127 && event.which != 8 && event.which != 32) return false;" />
et ben croyez moi si vous voulez, mais autant le space fonctionne ainsi que le backspace, mais impossible de faire passer le delete ! Je ne sais pas pourquoi.
J'ai testé en passant les valeurs en décimal et en hexadécimal, même résultat, cela ne fonctionne pas :@
Comme je voulais pas m'avouer vaincu, je me suis fait un mini keylogger sur une page externe que voila :
1. <html>
2. <head>
3. <title>KEYLOGGER</title>
4. </head>
5.
6. <body>
7.
8. <form method="post">
9.
10. <input type="text" size="10" onKeyPress="if (event.keyCode) alert(event.keyCode); if (event.which) alert(event.which);" />
11.
12. </form>
13.
14. </body>
15.
16. </html>
Si vous copiez ca dans une page html vide et que vous l'ouvrez, vous verrez que chaque caractère tapé dans la box renvoit un alert avec la valeur de la touche en décimal.
Seulement ca me sert pour le space (32), mais ni le backspace ni le del ne renvoient de valeur... pas facile...
Ensuite, je suis allé chercher une bonne vieille table ascii pour balancer direct les correspondances : http://www.tableascii.com/
del = 127
space = 32
backspace = 8
ma question est donc la suivante : POURQUOI CE FOUTU DEL NE PASSE PAS ???????
ou peut etre y'a t'il un autre caractere pour le DEL, je sais pas.
quelqu'un a une idée ???
Merci d'avance,
Oliv
|
|
| |
|
bernie38
Waldorf (le pote à Statler)
Messages : 11 393 Inscrit le 28/08/03
Ville : Claix
Non connecté
|
|
Posté le 12 juin 2006 - 17 h 33 m 31 s |
|
|
je crois que c'est parce que les touches "spéciales" (delete, backspace, etc) ne sont pas envoyées par le micro-controleur du clavier comme des caractères, et donc ton code qui essaie d'intercepter des caractères ne les voit pas. Mais à confirmer...
|
|
| |
La Montagne n'est pas dangereuse : on ne peut qu'y perdre la vie, tandis qu'en ville on devient bête et méchant
Voltaire
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 510 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 12 juin 2006 - 17 h 38 m 06 s |
|
|
c'est ce que je me disais aussi jusqu'a ce que j'arrive a "chopper" le backspace, aussi je doute completement maintenant...
d'autre part, si ces caracteres ne sont pas envoyes, comment expliquer qu'ils soient bloques lorsque l'on ne donne qu'une partie des codes ascii comme etant valides (les chiffres dasn mon 1er exemple), tu vois ce que je veux dire ? du coup, je me demande si le del se cache pas sous un autre caractere a la noix...
|
|
| |
|
bernie38
Waldorf (le pote à Statler)
Messages : 11 393 Inscrit le 28/08/03
Ville : Claix
Non connecté
|
|
Posté le 12 juin 2006 - 17 h 53 m 11 s |
|
|
il y a longtemps j'avais essayé de le faire (en C ou C++ je me souviens plus) et j'avais lamentablement échoué. Parce que je crois bien que c'est des signaux spéciaux envoyés par le micro-controleur du clavier. Et du coup j'avais laissé tomber...
EDIT : un peu pareil pour les touches de fonction, essaie, pour voir le désastre 
Je pense qu'il faut une API spécialisée pour les intercepter correctement.
|
|
| |
Message édité 1 fois, la dernière par bernie38 le 12 juin 2006 - 17 h 58. |
| |
La Montagne n'est pas dangereuse : on ne peut qu'y perdre la vie, tandis qu'en ville on devient bête et méchant
Voltaire
|
Erel69
206 (¯`·.__[T3aM.L1b3rTe©]__.·´¯)
Messages : 19 449 Inscrit le 07/11/01
Ville : Lyon
Non connecté
|
|
Posté le 12 juin 2006 - 17 h 57 m 34 s |
|
|
Perso, j'accepte tous les caractères mais je supprime ceux qui ne sont pas des chiffres dans l'input.
|
|
| |
Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 510 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 12 juin 2006 - 20 h 51 m 50 s |
|
|
Le 12 juin 2006 - 17 h 57, Erel69 a écrit :
Perso, j'accepte tous les caractères mais je supprime ceux qui ne sont pas des chiffres dans l'input.
|
tu fais comment ? un ereg en js ?
|
|
| |
|
Erel69
206 (¯`·.__[T3aM.L1b3rTe©]__.·´¯)
Messages : 19 449 Inscrit le 07/11/01
Ville : Lyon
Non connecté
|
|
Posté le 12 juin 2006 - 22 h 03 m 53 s |
|
|
|
|
|
| |
Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 510 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 13 juin 2006 - 08 h 25 m 12 s |
|
|
dans ce cas ca suppose l'envoi du form avant pour controle ulterieur non ? moi en fait ce que je voudrais c'est eviter ce genre de manip et filtrer à l'entrée...
|
|
| |
|
Erel69
206 (¯`·.__[T3aM.L1b3rTe©]__.·´¯)
Messages : 19 449 Inscrit le 07/11/01
Ville : Lyon
Non connecté
|
|
Posté le 13 juin 2006 - 09 h 10 m 06 s |
|
|
euh et pourquoi l'utilisation d'une regexp suppose l'envoi du form pour contrôle ultérieur ???
tu peux très bien faire une fonction de vérif à la volée vu que c'est en js
|
|
| |
Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 510 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 13 juin 2006 - 09 h 26 m 36 s |
|
|
juste...
je vais tenter...
|
|
| |
|
Erel69
206 (¯`·.__[T3aM.L1b3rTe©]__.·´¯)
Messages : 19 449 Inscrit le 07/11/01
Ville : Lyon
Non connecté
|
|
Posté le 13 juin 2006 - 10 h 56 m 54 s |
|
|
Ca fonctionne très bien pour moi en tout cas
|
|
| |
Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 510 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 13 juin 2006 - 11 h 13 m 49 s |
|
|
bon c bon, j'ai mis en place les regexp, par contre, j'ai fait ca sur un onblur afin de tester tout le champ et pas caractere par caractere... j'aime moins mais bon... jvais essayer via keypressed...
|
|
| |
|
Erel69
206 (¯`·.__[T3aM.L1b3rTe©]__.·´¯)
Messages : 19 449 Inscrit le 07/11/01
Ville : Lyon
Non connecté
|
|
Posté le 13 juin 2006 - 12 h 28 m 52 s |
|
|
je le met sur onkeyup moi
|
|
| |
Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 510 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 13 juin 2006 - 13 h 18 m 07 s |
|
|
vais tester ca cet aprem
|
|
| |
|