2017-07-14 3 views
-2

J'ai un formulaire plutôt basique (en utilisant la méthode POST) que je veux soumettre lorsque l'utilisateur clique sur un lien (en dehors de ce formulaire). J'ai aussi un bouton de soumission dans le formulaire, qui fonctionne parfaitement, donc ce n'est pas un problème avec le formulaire en soi.

Fondamentalement, ce que j'ai est (simplifiée, évidemment):

HTML

<form method="post" id="searchForm" action="[absolute https URL]"> 
<!-- (some text fields, checkboxes, select elms, hidden fields, a submit button) --> 
</form> 

<a href="#" class="close">Confirm</a> 

JS

} else if ($(e.target).is('a.close')) { 
    // do some stuff (<- this works) 
    // ... 
    // then submit form 
    $('#searchForm').submit(); // <- no effect 
    // $('#searchForm').trigger('submit'); // also no effect 
    // document.forms['searchForm'].submit(); // still nothing 

    console.log($('#searchForm')); // <- this works 
} 

Mon problème est: le .submit(); la ligne ne semble rien faire. Le formulaire n'est pas soumis (la page ne se recharge même pas) et aucune erreur n'apparaît dans la console du navigateur. Je sais que le code est déclenché en cliquant sur le lien à cause de la console.log à l'intérieur (ce qui confirme également que l'élément de formulaire est trouvé (longueur 1)).

Il n'y a pas d'autre forme sur la page, et aucun autre élément avec l'ID "searchForm". Autant que je sache, aucun gestionnaire d'événements n'est lié à l'élément de formulaire.

Qu'est-ce qui me manque? Que dois-je vérifier?

+0

Bien que nous vous encourageons à poser votre propre question et à y répondre, veuillez d'abord vous assurer que ce n'est pas un doublon. –

+0

Droite. Désolé pour ça. – s427

Répondre

1

OK, j'ai trouvé ce qui a causé ce problème!

Mon bouton Envoyer avait le code HTML suivant:

<button type="submit" name="submit" id="submit"><span>Search</span></button> 

Il se trouve, submit est un mot réservé qui ne devrait pas être utilisé comme un attribut name (ni comme id, en fait).

Ceci a empêché l'envoi du formulaire.

Après avoir modifié les deux les attributs id et name pour ce bouton, mon script a fonctionné comme un charme.