2010-09-08 6 views
3

je charge un formulaire dans une boîte de dialogue jquery ui. J'ai un bouton de soumission (à l'intérieur de mon formulaire - PAS les boutons de dialogue réels) qui appelle une action de contrôleur mais je ne peux pas comprendre comment fermer la boîte de dialogue après que le soumettre est appelé car je n'ai aucun gestionnaire d'événements que je suis attacher.comment puis-je fermer ma boîte de dialogue jquery ui lorsque je soumets un formulaire?

est-il de toute façon de le faire en plus de changer le soumettre à l'entrée type = bouton?

Je sais que je peux jquery capturer le soumettre

$('#positionForm').submit(function() { 
    // do stuff 
    return true; 
}); 

mais cela semble tirer avant de soumettre si je ne veux pas fermer encore la boîte de dialogue.

est là quelque chose de mal avec le code ci-dessous:

$('#positionForm').live('submit', function() { 

    $.post('/MyController/Action', $("#positionForm").serialize(), function (data) { 
      alert(data); 
    }, "html"); 

    closeModalPopup(); 
    return false ; 
}); 

Répondre

5

Pour la question mise à jour: Vous pouvez appeler le code proche du rappel success, comme ceci:

$('#positionForm').live('submit', function() { 
    $.post('/MyController/Action', $(this).serialize(), function(data) { 
    $('#positionForm').closest(".ui-dialog-content").dialog("close"); 
    }, "html"); 
    return false; 
}); 

Réponse originale: Vous pouvez joindre un formulaire submit handler, pour exa mple:

$("#myform").submit(function() { 
    $(this).closest(".ui-dialog-content").dialog("close"); 
}); 

You can give it a try here.

+0

Craver @ Nick - voir ma question mise à jour. vais-je perdre tout le contenu si je ferme la boîte de dialogue avant de soumettre le formulaire que ce rappel est plus d'un "beforeSubmit" correct? – leora

+0

@ooo - Comment le soumettez-vous, un plugin ajax? –

+0

@Nick Craver - non, juste un bouton régulier de soumission à l'intérieur d'une balise de formulaire – leora

0

Vous pouvez également le faire en utilisant $("#name_of_the_dialog") .dialog ("close");

Il est plus naturel que d'utiliser $closest

Questions connexes