Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1513 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  bloquer une patie du clavier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

bloquer une patie du clavier

n°1891858
kazerson
Posté le 06-06-2009 à 00:31:45  profilanswer
 

Bsoir à tous! Je voudrais savoir comment je peux bloquer le clavier alphabétique en javascript pour des champs de type numérique seulement.
Merci d'avance.


Message édité par kazerson le 06-06-2009 à 00:32:56
mood
Publicité
Posté le 06-06-2009 à 00:31:45  profilanswer
 

n°1891874
SICKofitAL​L
misanthrope
Posté le 06-06-2009 à 01:14:45  profilanswer
 

Tu peux utiliser l'evenenement onChange, ou onKeyDown qui est ptetre plus utile dasn ce cas. Attention par contre au compatibilité entre browsers.
Ya un semblant de tuto ici : http://www.w3schools.com/jsref/jsref_onkeydown.asp


---------------
We deserve everything that's coming...
n°1891886
kazerson
Posté le 06-06-2009 à 02:11:37  profilanswer
 

je regarde tout de suite merci

n°1891892
phosphorel​oaded
Posté le 06-06-2009 à 02:35:26  profilanswer
 

Bonjour,
 
tu vas bloquer certains utilisateurs de ton site en faisant ça :/ (lecteurs d'écran, portables sans souris manipulés au clavier, extensions genre Nukemall pour ce qui me vient à l'esprit mais doit y en avoir d'autres)
Tu ferais mieux d'accepter que le caractère soit frappé mais tu l'effaces aussi sec de ton champ (avec petite explication à côté de ton champ sur le pourquoi du refus)

n°1891895
kazerson
Posté le 06-06-2009 à 02:43:23  profilanswer
 

Je voulais en fait même jute la fonction JS qui me permet de savoir qu'un caractère est soit Numérique, alphabétique ou alphanum

n°1891897
SICKofitAL​L
misanthrope
Posté le 06-06-2009 à 02:56:29  profilanswer
 

Pour ca tu peux utiliser la fonction parseInt :

Code :
  1. parseInt ("Chaine" );  // renvoit NaN, soit "Not A Number" (voir alors la fonction isNaN () ), plus d'infos sur google ;)
  2.  
  3. parseInt (10); // renvoit 10
  4.  
  5. parseInt ("10chaine" );  // piège car ca renvoit 10 !!!
  6.  
  7. parseInt ("chaine10" );  // renvoit NaN


Sinon tu peux utiliser des expressions régulières comme ca :

Code :
  1. var isNumeric = function (value)
  2. {
  3.     return (/(^\d+$)|(^\d+\.\d+$)/.test (value));
  4. }
  5.  
  6. isNumeric ("10abc" ); // false
  7. isNumeric ("abc10" ); // false
  8. isNumeric (10); // true
  9. isNumeric ("10" ); // true


---------------
We deserve everything that's coming...
n°1891900
kazerson
Posté le 06-06-2009 à 03:06:13  profilanswer
 

Voila c'est ça même! Mais expressions reg
return (/(^\d+$)|(^\d+\.\d+$)/.test (value));
je vais revoir. Merci bouceaup


Message édité par kazerson le 06-06-2009 à 03:06:49
n°1891904
kazerson
Posté le 06-06-2009 à 03:27:11  profilanswer
 

On dirais qu'il y a pb o niveau de .test (value). "test" est-elle une fonction prédéfinie?


Message édité par kazerson le 06-06-2009 à 03:27:41
n°1891906
SICKofitAL​L
misanthrope
Posté le 06-06-2009 à 03:39:11  profilanswer
 

Oui, ca fait partie de l'attirail JS concernant les expressions régulières : http://www.cybwarrior.com/FR/JavaS [...] ieres.html
 
La fonction isNumeric que je t'ai filé est sensé fonctionner comme il faut, car je l'utilise depuis qq temps déjà ;)


---------------
We deserve everything that's coming...
n°1892054
kazerson
Posté le 06-06-2009 à 21:07:45  profilanswer
 

Peut être je n'arrive pas à bien utiliser cette fonction
 


Message édité par kazerson le 06-06-2009 à 21:11:12
mood
Publicité
Posté le 06-06-2009 à 21:07:45  profilanswer
 

n°1892076
SICKofitAL​L
misanthrope
Posté le 06-06-2009 à 22:17:43  profilanswer
 

Balances le code que tu as pour l'instant si tu veux.


---------------
We deserve everything that's coming...
n°1892080
kazerson
Posté le 06-06-2009 à 22:23:40  profilanswer
 

JS: j'ai modifier ainsi:

Code :
  1. function isNumeric (value)
  2. {
  3.     return (/(^\d+$)|(^\d+\.\d+$)/.test (value));
  4. }
  5. function test(valeur)
  6. {
  7.   if(isNumeric(valeur)) 
  8.   alert("oui" ) ;
  9.   else
  10.   alert("Non" ) ;
  11. }
 

et html:

 
Code :
  1. Num tel: <input type="text" size="10" name="num" onkeypress="test(document.maforme.num.value)"/>
 

La ça marche! Je voulais maintenant aller un peu loin en faisant ceci:
Lorsque tu appuis sur une touche alpha, rien ne s'affiche dans le input sauf quand c'est une touche num

 



Message édité par kazerson le 06-06-2009 à 22:26:54
n°1892091
SICKofitAL​L
misanthrope
Posté le 06-06-2009 à 23:02:24  profilanswer
 

Prends ce bout de code (testé sous Firefox et IE), tu as ce qu'il te faut je pense.
Il fait en sorte que aucun chiffres ne soient saisies :

Code :
  1. <html>
  2. <head>
  3.     <script type="text/javascript">
  4.         function isNumeric (value)
  5.             {
  6.                 return (/(^\d+$)|(^\d+\.\d+$)/).test (value);
  7.             }
  8.  
  9.         /*    Gestion du onKeyPress.
  10.             "event" est passé automatiquent par le browser à la fonction (sauf dasn le cas de IE, voir plus bas).
  11.             Dans le cas d'un evenement JavaScript, le fait de retourner false (FAUX) stop le processus lié à celui-ci, ce qui dans notre cas empeche le caractere d'être saisie !
  12.         */
  13.         function keyPressHandler (event)
  14.             {
  15.                 event = event || window.event;    // si event n'existe pas, on est sous IE, et pour IE un evenement est global...
  16.                 var car = String.fromCharCode (event.charCode || event.keyCode); // charCode pour le standards ou keyCode pour IE
  17.                 return !isNumeric (car);  // isNumeric renvoit vrai s'il s'agit d'un chiffre, or nous ne voulons pas de chiffres, donc nous inversons le résultat avec un "!".
  18.             }
  19.     </script>
  20.  
  21. </head>
  22. <body>
  23.     <form>
  24.         saisir texte : <input type="text" onkeypress="return keyPressHandler (event);" />
  25.     </form>
  26. </body>
  27. </html>


 
Si tu veux le contraire (QUE des chifrres), remplace la ligne 17 par "return isNumeric (car);" (càd sans le "!" )


---------------
We deserve everything that's coming...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  bloquer une patie du clavier

 

Sujets relatifs
[JAVA] SunSPOT - Gestion clavierClavier matriciel [urgent :s]
[Batch] appuyer sur une touche du clavier virtuelementcode pour bloquer le lancement d'une application windev
Espionner le clavier ? (intercepter le clavier)Recuperer un nombre avec clavier matriciel 12 Touches
Bloquer la suppression d'un fichier sous WinXPGestion du clavier...Problème :(
Plus de sujets relatifs à : bloquer une patie du clavier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR