2010-10-12 3 views
3

J'essaie actuellement d'utiliser jquery pour entrer une sélection à partir d'une liste déroulante dans une zone de texte, simuler un clic pour la sélectionner, appuyer sur retour, attendre un traitement, puis appuyer sur reviens encore. C'est une mauvaise façon d'obtenir ce dont j'ai besoin, mais c'est la seule façon que je puisse voir en ce moment. Voici le code:jQuery 'événement non défini' erreur sur la touche simulée

$('#fav').change(function() 
{ 
    $('#contract_input').val($('#fav').val()); 
    $('#contract_input').trigger('click'); 
    e = jQuery.Event("keypress"); 
    e.which = 13; 
    $('#contract_input').trigger(e).delay(500).trigger(e); 
} 

La question que j'ai est que IE8 donne une erreur sur la page:

« événement » est pas défini

Le clic semble travail, c'est juste le retour qui ne fonctionne pas.

Des idées? .

Un grand merci
Cap

+0

Comment le gestionnaire '# contract_input' est-il lié? Il y a beaucoup de meilleures façons de le faire :) –

+0

cela fait partie d'un flexbox (http://flexbox.codeplex.com/) pour permettre une fonction de style google suggérer pour sélectionner les numéros de contrat. La liste déroulante est une option supplémentaire permettant aux utilisateurs d'entrer automatiquement les numéros de contrat favoris. Comme je n'ai pas trop chaud sur javascript je n'ai pas vraiment envie de jouer avec la flexbox elle-même. – Captastic

+0

Essayez 'e = jQuery.Event (" keypress "); e.keyCode = 13; $ ('# contract_input'). trigger (e) .delay (500) .trigger (e); ', une chance? –

Répondre

-1

Modifier à nouveau: $ ('# de contract_input') keypress (function (e) {} faire des choses); Doit être utilisé à la place http://api.jquery.com/keypress/

+0

Ce qu'il a est correct: http://api.jquery.com/category/events/event-object/ –

+0

Ceci est totalement faux. Ce que vous faites est d'ajouter un keypress-event-handler au champ d'entrée qui ne déclenche pas un événement keypress-event. – jitter

+0

Vous avez lu la question à quelques reprises maintenant et .. Vous avez raison .. Je pense. – Mantar

1

Pensez à utiliser keydown au lieu de keypress et dans Internet Explorer, vous pouvez essayer de mettre e.keyCode au lieu e.which.

par exemple.

e = jQuery.Event("keydown"); 
e.keyCode = 13; 
$('#contract_input').trigger(e).delay(500).trigger(e); 
+0

pas de joie malheureusement, mêmes erreurs, merci quand même :) – Captastic

Questions connexes