[JS] gestion d'événements sous IE et Firefox

gestion d'événements sous IE et Firefox [JS] - HTML/CSS - Programmation

Marsh Posté le 10-01-2006 à 16:44:02    

Code :
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function text1_onchange() {
  5. alert("text1_onchange()" );
  6. }
  7. function text1_onkeyup() {
  8. var oTextField = document.getElementById("text1" );
  9. oTextField.value = oTextField.value.toUpperCase();
  10. }
  11. </script>
  12. </head>
  13. <body>
  14. <form action="" method="get">
  15.   <input type="text" name="text1" id="text1" value="text1" onkeyup="text1_onkeyup();" onchange="text1_onchange();" />
  16.   <br />
  17.   <input type="text" name="text2" id="text2" value="text2" />
  18. </form>
  19. </body>
  20. </html>


 
Voici un code, deux champs de texte avec deux événements câblés sur le champ 1. Quand je tabule de text1 à text2 je veux lancer un traitement JS (ici l'ouverture d'une fenêtre alert). Parallèlement, je veux faire un autre traitement (ici mise en majuscule) sur le onkeyup.
 
Sous Firefox ça marche, pas sous IE. Quelqu'un a une idée, un contournement ?

Reply

Marsh Posté le 10-01-2006 à 16:44:02   

Reply

Marsh Posté le 10-01-2006 à 17:31:28    

je trouve ça presque logique que ça marche pas :o  
 
Tu pourrais le contourner en faisant un onBlur et en testant avec la valeur initiale de ton champs( mais c'est un peu dégueu parce que ça t'oblige à stocker la valeur initiale quelque part)

Reply

Marsh Posté le 10-01-2006 à 17:33:42    

Heu, j'ai oublié de dire que j'ai un suckerfish qui intercepte les onblur et onfocus sur tous les champs de texte. Je suis mort c'est ça ?

Reply

Marsh Posté le 10-01-2006 à 17:41:48    

sinon tu peux virer le onkeyup et mettre ton uppercase dans le onchange là ça marchera ...
 
Mais j'imagine que si tu l'as mis dans le onkeyup c'était pour une bonne raison!?

Reply

Marsh Posté le 10-01-2006 à 18:16:25    

Cohérence avec le reste de l'appli principalement. Mais je pense qu'on va devoir faire une entorse.

Reply

Sujets relatifs:

Leave a Replay

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