[JS] Bloquer certaines touches

Bloquer certaines touches [JS] - HTML/CSS - Programmation

Marsh Posté le 07-11-2005 à 17:03:46    

Bonjour,
 
Voivi mon problème j'ai un formulaire ac un champ INPUT de type "text".
 
J'appelle : onKeypress="TestCar(event)"
 
Et voilà la fonction TestCar :

Code :
  1. function TestCar(evt)
  2. {
  3. //IE
  4. if (window.event)
  5. {
  6.  if ((evt.keyCode>0 && evt.keyCode<48 && evt.keyCode!=8) || (evt.keyCode>57 && evt.keyCode<65) || (evt.keyCode>90 && evt.keyCode<97) || (evt.keyCode>122 && evt.keyCode!=127))
  7.  {alert("Caractère interdit !" );
  8.   evt.returnValue = false;
  9.  }
  10. }
  11.   //autre   
  12.   if ((evt.which>0 && evt.which<48 && evt.which!=8) || (evt.which>57 && evt.which<65) || (evt.which>90 && evt.which<97) || (evt.which>122 && evt.which!=127))
  13. {alert("Caractère interdit !" );
  14.  return false;
  15. }
  16. }


 
Le code destiné à IE marche très bien j'annule bien la touche pressée, tandis que sous mozilla, j'ai bien le popup "caratère interdit" ms j'arrive pas à annuler l'event. Il insere quand même le caractère tapé dans mon champ input..
 
Comment dois-je faire ?
 
Merci  :jap:

Reply

Marsh Posté le 07-11-2005 à 17:03:46   

Reply

Marsh Posté le 07-11-2005 à 17:08:20    

solution de féignant:
passe ton input en paramètre et enleve le dernier caractère saisi de sa value.

Reply

Marsh Posté le 08-11-2005 à 09:33:09    

La méthode "bourrine" ne marchait pas car je récupérais la value du champ avant que le caractère ne soit tapé dedans.
 
Par contre j'ai trouvé comment le faire proprement ss firefox, pr annuler l'evenement c'est:

Code :
  1. evt.preventDefault();


 
Maintenant le code marche sous firefox, mais j'ai une grosse erreur dans la console javascript ce qui fait pas tres propre :( :(  
 

Code :
  1. Erreur : [Exception... "'Permission refusée d'obtenir la propriété XULElement.selectedIndex' when calling method: [nsIAutoCompletePopup::selectedIndex]"  nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)"  location: "JS frame :: http://127.0.0.1/gmao/gestion_gamme_maintenance.php :: TestCar :: line 382"  data: no]


 
une idée  :??:   :??:


Message édité par DarkAngel67 le 08-11-2005 à 09:33:52
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed