2010-11-17 5 views
2

Je dois obtenir un événement .click() et empêcher le formulaire de se comporter comme il a été initialement conçu et apporter mes propres modifications et soumettre. Comment est-ce possible?Comment empêcher un comportement de soumission sur formulaire dans jquery?

EDIT: L'entrée de formulaire a en fait un comportement onclick défini. Je dois le redéfinir d'une manière ou d'une autre.

EDIT: Certains Code

<form action='link' method='get'> 
    <input type="image" name="name" id="id" class="class" onclick="this.form.action='some_link'" title="Title" value="" src="image.gif"> 
</form> 
+0

double possible de http://stackoverflow.com/questions/1263852/prevent-form-redirect-or-refresh -on-soumettre ou http://stackoverflow.com/questions/699065/submitting-a-form-on-enter-with-jquery ou beaucoup d'autres. – Shikiryu

+0

Un code ici aiderait. –

Répondre

4
$('#form').submit(function(e) { 
    // Some code 
}); 

Je pense qu'il est assez.

+0

Donc, si j'ai dit onclick = "this.form.action = 'somelink'" il va s'exécuter et après le code suggéré (un peu de code) sera? –

+0

Je ne suis pas sûr. Ce qui est sûr, c'est que le formulaire sera soumis. Vous pouvez utiliser e.prevendDefault(); et this.submit() si cela ne fonctionne pas. – MatTheCat

+0

Cela fonctionne avec les valeurs par défaut. Merci. –

0

Vous pouvez utiliser quelque chose comme ça (n'ont pas testé, mais il devrait fonctionner)

form = $("#yourform"); 
button = $("#yoursubmit"); 
button.click(function(){ 
      dosomething(); 
      form.submit(); 
      return false;}); 
+0

Qu'en est-il des utilisateurs qui soumettent une saisie de formulaire? – MatTheCat

+0

@MatTheCat: L'OP a spécifiquement demandé un événement click. Cette solution peut être appliquée à un bouton générique, même s'il réside en dehors du formulaire. – nico

5

Si vous ne voulez pas qu'il envoie le formulaire, return false à la fin de votre fonction de clic. Si vous voulez soumettre le formulaire, utilisez l'élément de formulaire et appelez la fonction soumettre à ce sujet:

$('#myFormID').submit(); 
Questions connexes