2017-10-08 4 views
-1

Html a de nombreux types d'événements. J'essaie de simuler la connexion avec le code javascript dans un fichier .hta. J'essaie ce qui suit sur un élément de saisie de texte:Comment simuler des événements (autres que le focus et le flou) sur un élément d'entrée de formulaire HTML?

user.focus(); 
user.value = 'JohnDoe'; 
user.blur(); 
button.click(); 

Pourtant, la page répond comme si je l'avais cliqué sur le bouton sans entrer un nom d'utilisateur. Je suspecte qu'un gestionnaire d'événement est enregistré sur l'élément qui n'est pas déclenché quand je fais cela avec un script. Qu'est-ce que je fais pour établir la cause de l'échec et l'amender? Comment simuler les autres types d'événements sur l'élément?

Répondre

0

Je trouve la réponse ici: How to trigger event in JavaScript?

est ici la recette:

function fireevent(type, ele) 
{ 
    var event = win.document.createEvent("HTMLEvents"); 
    event.initEvent(type, true, true); 
    ele.dispatchEvent(event); 
} 

Où victoire est la fenêtre en question. fireevent ('change', user) déclenche un événement change sur l'utilisateur de l'élément de saisie de texte, et c'est ce que je devais faire. Maintenant ça marche :)

Attention, createEvent est maintenant obsolète. Sur IE10, qui est celui que j'utilise avec .hta, ça marche très bien.