2010-07-23 5 views
4

J'ai deux boutons de soumission et un formulaire. Comment puis-je vérifier quel bouton de soumission a été sélectionné dans mon code jquery?Comment gérer deux boutons Envoyer sur un formulaire?

<% using (Html.BeginForm("UserInfo", "Home", FormMethod.Post, new { id = "formNext" })) { %> 
.... 
<input id="submitHome" type="submit" name="goHome" value="Home" /> 
<input id="submitNext" type="submit" name="getNext" value="Next" /> 
<% } %> 


$(document).ready(function() {  
$('#formNext').submit(function() {  
     //Code Does not work but looking at something like this... 
     //$('#submitHome').click(function() { 
     //  navigate to Home; 
     //}); 
     //$('#submitNext').click(function() { 
     //  return true; 
     //}); 
    }); 
}); 
+0

Est-ce que cette vieille question aider? http://stackoverflow.com/questions/2154039/jquery-submit-how-can-i-know-what-submit-button-was-pressed – Tobiasopdenbrouw

+0

Vous devriez probablement utiliser des boutons au lieu de soumettre des entrées. – recursive

+0

Pourquoi avez-vous supprimé votre [dernière question] (http://stackoverflow.com/questions/3366104/compatibility-view-kills-my-style-sheet-what-to-do)? – BalusC

Répondre

15
$('#submitHome').click(function() { 
     //navigate to Home; 
}); 
$('#submitNext').click(function() { 
     return true; 
}); 

Ceux-ci devraient travailler si vous les tirez en dehors de la form.submit(). (En ce moment ces gestionnaires sont attachés après l'envoi du formulaire, ce qui est trop tard puisque le clic a déjà eu lieu)

+0

C'est exactement ce que je faisais mal.Merci! – MrM

+0

Si l'utilisateur utilise le clavier pour soumettre, cela ne fonctionne pas – Mika

2

Cela devrait fonctionner:

<% using (Html.BeginForm("UserInfo", "Home", FormMethod.Post, new { id = "formNext" })) { %> 
.... 
<input id="submitHome" type="submit" name="goHome" value="Home" /> 
<input id="submitNext" type="submit" name="getNext" value="Next" /> 
<% } %> 


$(document).ready(function() { 
    $('#submitHome').click(function(e) { 
    e.preventDefault(); // prevent the page to do the usuall onclick event (from reloading the page) 
    // navigate to Home; 
    }); 
    $('#submitNext').click(function(e) { 
    e.preventDefault(); 
    // return true; 
    }); 
}); 
0

Créer deux méthodes d'action et qui gère les deux post séparement cela prend formcollection comme param. Ajoutez deux entrées avec le bouton type = et liez l'événement click avec $ .post à votre méthode d'action avec les valeurs des contrôles de formulaire dont vous avez besoin pour ce post.

Questions connexes