2009-10-13 5 views
4

J'essaye de forcer une pression de touche dans un champ de texte en utilisant javascript. Cela doit fonctionner spécifiquement sur IE, mais cela ne fonctionne tout simplement pas.Forcer l'événement de clavier javascript dans une zone de texte sur IE

Quelqu'un peut-il m'aider?

Mon script de test est celui-ci:

<html> 
    <body> 
    <input type="text" id="txtfld"> 
    <input type="button" onclick="go()"> 
    <script> 
    function go() { 
     var q = document.getElementById('txtfld'); 
     q.style.backgroundColor='yellow'; 
     q.focus(); 

     var evObj = document.createEventObject(); 
     evObj.keyCode = 84; // [T] key 
     q.fireEvent('onkeypress', evObj); 
    } 
    </script> 
    </body> 
</html> 

Merci à l'avance!

Répondre

2

Ce n'est pas une bonne idée d'essayer de piloter les actions par défaut des navigateurs en simulant des événements. Dans la mesure où cela peut être fait du tout, il est spécifique au navigateur et peu fiable.

Si vous voulez ajouter une lettre « t » au champ, dites:

q.value+= 't'; 

Dans les cas plus compliqués comme si vous souhaitez insérer une lettre à la position actuelle du curseur, vous avez besoin d'un code de branchement pour document.selection (IE) et field.selectionStart/End (autres).

+0

Merci d'avoir répondu! Ceci est destiné à une expérience d'automatisation Web. IE déclenche l'événement sur le champ de texte mais n'y ajoute aucun contenu. – Bruno

Questions connexes