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.

C'est effectivement une bonne question, qui serait probablement obtenir plus de vues, si elle était intitulée "substitution de la built-in Javascript méthode submit d'un Formulaire"

OriginalL'auteur CoryDorning | 2010-10-01