saisie de chiffre et focus

saisie de chiffre et focus - HTML/CSS - Programmation

Marsh Posté le 11-08-2005 à 12:23:39    

Salut à tous,  :hello:  
 
J'aimerai que l'utilisateur soit obliger de rentrer que des chiffres et qu'on bout de deux chiffre que ca passse auto à l'input suivant.
Voici ce que j'ai fais :

Code :
  1. <form name=form >
  2. <table boder=1 >
  3. <tr><td> 1
  4.   <script>
  5.   function NbChar(This,IdInput)
  6.   {
  7.       if(isNaN(document.forms[0].elements[This].value))
  8.         alert("entrer chiffre" );
  9.       else if(document.forms[0].elements[This].value.length==2)
  10.            document.forms[0].elements[IdInput].focus()
  11. }
  12.     </script>
  13. <input type=text size=1 maxlength=2 id="Algo1"  onkeypress="NbChar('Algo1','Algo2')"></td>
  14. <td>2
  15. <input type=text size=1 maxlength=2 id="Algo2" onkeypress="NbChar('Algo2','Algo3')"></td>
  16. <td> 3
  17. <input type=text size=1 maxlength=2 id="Algo3"  onkeypress="NbChar('Algo3','Algo4')"></td>
  18. <td> 4
  19. <input type=text size=1 maxlength=2 id="Algo4"></td>
  20. </tr>


 
Alors si j'entre des chiffres pas de probleme cela fonctionne correctement.
Par contre à la saisie de lettre cele se complique. Dans un premier temps je tape une lettre il ne reagis meme pas il ne s'en aprecoit qu'a la saisie de la 2eme.
Mais ce que je voudrais faire c'est que si l'util essaie d'entrer une lettre il ne peut pas (mais qu'en fait ca bloque la touche que celle ci ne s'affiche meme pas!!)
 
Donc si quelqu'un connait un truc ou alors si mon code est bencale...
Merci d'avance :)  
 
 </table>

Reply

Marsh Posté le 11-08-2005 à 12:23:39   

Reply

Marsh Posté le 11-08-2005 à 12:37:50    

Ben à la place de faire un alert("pas un nombre" )
 
Tu fais :
document.forms[0].elements[This].value="";
ou un truc de ce style là.

Reply

Marsh Posté le 11-08-2005 à 12:49:39    

oui je sais, desole, mais en fait l'alert est là juste pour mes test mais, ce que je voudrai ce n'est pas effacer le champs, ce serait en gros : si c'est un chiffre autoriser l'affichage, sinon ne pas afficher (meme pas pour l'effacer juste derriere)
 
j'espère que c'est comprehensible..

Reply

Marsh Posté le 11-08-2005 à 12:53:03    

Oui comprendo... :lol: vais réfléchir plus précisement...

Reply

Marsh Posté le 11-08-2005 à 12:55:33    

Tous con...
Si NAN ben return false...

Reply

Marsh Posté le 11-08-2005 à 12:56:12    

sinon pour que ca agisse des la premiere saisie, l'evenement c'est onkeyup plutot que onkeypress...
 
sur on keypress, ton champ est vide puisque tu appelles la fonction en appuyant sur la touche, avant de connaitre sa valeur

Reply

Marsh Posté le 11-08-2005 à 13:00:18    

alors si ca peut t'aider j'ai trouver un script qui fait exactement ce que je veux voila le code :  

Code :
  1. <script>
  2. function codeTouche(evenement)
  3. {
  4.         for (prop in evenement)
  5.         {
  6.                 if(prop == 'which') return(evenement.which);
  7.         }
  8.         return(evenement.keyCode);
  9. }
  10. function scanTouche(evenement)
  11. {
  12.         var reCarValides = /\d/;
  13.         var codeDecimal  = codeTouche(evenement);
  14.         var car = String.fromCharCode(codeDecimal);
  15.         var autorisation = reCarValides.test(car);
  16.         return autorisation;
  17. }
  18. </script>
  19. <input type=text name=Algo size=5 maxlength=5 onKeyPress="return scanTouche(event);">


 
Mais étant super novice en javascript j'ai compris à moitieé (voir un peu moins) le code,
et je n'ai pas reussi à l'adapter.
C'est à dire ce code là + le changement de focus
si ca peut t'aider et moi même temps

Reply

Marsh Posté le 11-08-2005 à 13:01:02    

karoli a écrit :

sinon pour que ca agisse des la premiere saisie, l'evenement c'est onkeyup plutot que onkeypress...
 
sur on keypress, ton champ est vide puisque tu appelles la fonction en appuyant sur la touche, avant de connaitre sa valeur


 
oki merci du renseigenment

Reply

Marsh Posté le 11-08-2005 à 13:01:37    

plus simple...en plus du onkeyup :
 

Code :
  1. function NbChar(This,IdInput)
  2.   {
  3.       if(isNaN(document.forms[0].elements[This].value)) {
  4.         var ExChaine= document.forms[0].elements[This].value ;
  5.         document.forms[0].elements[This].value=ExChaine.substring(0,ExChaine.length - 1);
  6.       }
  7.       else if(document.forms[0].elements[This].value.length==2)
  8.            document.forms[0].elements[IdInput].focus()
  9. }

Reply

Marsh Posté le 11-08-2005 à 13:38:42    

merci :jap:  karoli c'est presque ca mais avec onkeypress la premiere lettre reste et onkeyup la lettre s'efface mais comment faire pour que la lettre ne s'affiche pas du tout ??

Reply

Marsh Posté le 11-08-2005 à 13:38:42   

Reply

Marsh Posté le 11-08-2005 à 13:47:09    

bon alors j'ai trouvé une parade j'utilise les deux comme ca  :D  

Code :
  1. <input type=text size=1 maxlength=2 id="Algo1"  onkeyup="NbChar('Algo1','Algo2')" onkeypress="return scanTouche(event);"></td>

Reply

Sujets relatifs:

Leave a Replay

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