2009-10-05 5 views
0

Pour des raisons que je ne vais pas entrer dans nous avons besoin de cliquer sur un bouton de soumission (par opposition à un bouton simple) via Javascript. Nous faisons cela en obtenant un handle sur le bouton submit, puis en exécutant la méthode .click() sur ce bouton. Cela fonctionne parfaitement dans FireFox, mais dans IE6 cela ne fonctionne que partiellement. Le bouton reçoit le clic, et le code associé aux boutons "onClick" se déclenche (nous pouvons observer ceci en regardant le code côté serveur dans le débogueur). Cependant, la page ne "rafraîchit" jamais comme elle le devrait quand cliquant sur un bouton "soumettre".Envoyer le bouton cliqué via javascript ne pas "soumettre" dans IE6

Comme cela fonctionne dans FireFox, nous supposons qu'il s'agit d'un autre bug IE6, mais je n'ai pas de chance de trouver une solution de rechange. Nous ne pouvons pas simplement actualiser directement la page car nous avons besoin de la dessiner comme si elle avait été créée à partir de la requête POST du bouton de soumission.

+0

Y at-il des erreurs dans la console d'erreur (recherchez une icône dans le coin inférieur gauche de la barre d'état) après avoir déclenché l'événement click? – tj111

+1

Pourquoi ne pas simplement appeler la méthode submit() sur l'objet de formulaire? –

+1

Désolé, je ne peux pas m'empêcher de pleurnicher lorsque les gens soumettent des formulaires via des clics de bouton. J'aime vraiment taper enter dans un champ de texte pour soumettre un formulaire: ma souris a des cooties. S'il vous plaît éviter cette utilisabilité faux pa. –

Répondre

2

Ne serait-il pas plus facile d'obtenir une référence à l'élément de formulaire et de déclencher l'événement submit?

var form = document.forms[0]; 
form.submit(); 
+0

Comme je l'ai mentionné plus haut, il faut "cliquer" sur le bouton (form.submit ne le fera pas). – jasongullickson

1

J'ai le même problème dans ASP.net. Nous devons "cliquer" sur le bouton car il y en a plus qui se passe dans ASP.net avec un formulaire que juste le .submit() normal sur le formulaire. Il doit savoir sur quel bouton vous avez cliqué afin qu'il puisse correspondre à l'événement Click sur le serveur pour ce bouton.

0

Essayez d'utiliser setTimeout pour retarder le clic de 1 milliseconde.

Questions connexes