Soumettre Écouteur d'Événement pour un formulaire
J'ai écrit un écouteur d'événement pour la soumission d'un formulaire qui me causer quelques problèmes. Lorsque vous appuyez sur "entrer" dans le champ texte tout fonctionne bien. Cependant, j'ai un span (background-image) qui soumet le formulaire via un événement click. Cela ne fonctionne pas correctement et je ne peux pas comprendre pourquoi.
Voici le HTML de base:
<form name="myForm">
<input type="text" name="search" />
<span id="search-button"></span>
</form>
Voici le JS pour l'écouteur d'événement:
function evtSubmit(e) {
//code
e.preventDefault();
};
var myform = document.myForm;
if (myform.addEventListener) {
myform.addEventListener('submit', evtSubmit, false);
}
Et voici le JS pour le "span" et son événement click:
var searchButton = document.getElementById('search-button');
if (searchButton) {
searchButton.onclick = function() {
document.myForm.submit();
};
}
REMARQUE: Le JS pour la durée de l'événement click est dans un autre fichier JS et inaccessible de l'atm, de sorte qu'un changement de ce script est de moins en moins une option. Si la seule façon de résoudre ce problème est de mettre à jour ce fichier, je peux...mais en raison de processus au-delà de mon contrôle, c'est beaucoup plus difficile.
OriginalL'auteur CoryDorning | 2010-10-01
Vous devez vous connecter pour publier un commentaire.
Lors de l'appel de
form.submit()
, leonsubmit
événement ne sera pas déclenché. Comme alternative, vous pouvez définir l'attribut action dejavascript:evtSubmit(event)
:Homme, vous sauver ma journée! 🙂
Quand j'ai essayer c'est d'obtenir un "e n'est pas défini" erreur.
Essayez
javascript:evtSubmit(event)
comme suggéré ci-dessus le codeOriginalL'auteur Lekensteyn