2010-12-13 37 views
0

J'utilise une aide d'URL Rails qui (pour la protection des bots, etc.) niche redirection dans une forme, comme ceci:Comment faire pour rediriger des actions de formulaire à l'aide de la boîte de dialogue JQuery UI?

<form method="post" action="/projects/1/personal/4/edit_income?criterion=4" class="button-to"><div><input name="_method" type="hidden" value="put" /><input class="requires_confirmation" type="submit" value="edit space parameters" /><input name="authenticity_token" type="hidden" value="4Q/E359jxXUcu7TSVm+cqdjj94RAdQpV+DIv7OUQ+Gg=" /></div></form> 

(Ci-dessus, la méthode ne doit pas être un POST .. .)

Je veux gérer clique sur ce .button à élément avec jQuery UI Dialog, comme ceci:

$('.button-to').click(function(e){ 
     $("#dialog-confirm").dialog({ 
      resizable: false, 
      height:250, 
      buttons: { 
       "Save": function() { 
        // SAVE CERTAIN DATA ELEMENTS HERE... 
        $(this).dialog("close"); 
        // FOLLOW FORM REDIRECT... 
        }, 
       "Don't save": function() { 
        $(this).dialog("close"); 
        // FOLLOW FORM REDIRECT... 
        }, 
       Cancel: function() { 
        $(this).dialog("close"); 
        // BUT CANCEL REDIRECT IN THIS CASE! 
        } 
      } 
     }); 
    }) 

Il semble que ce genre de chose viendrait tout le temps, mais je ne peux Je ne trouve rien qui m'aide à atteindre le résultat que je cherche. Aucune suggestion?

Merci,

Lille

Répondre

1

est tombé sur cette question après avoir affiché une semblable. Fondamentalement, j'ai trouvé que l'utilisation de la collection .data fonctionne le mieux. Définissez certaines vars dans $('#dialog').data avant l'instanciation, puis vous pouvez utiliser le formulaire pour les modifier si nécessaire. Ensuite, vous pouvez utiliser les méthodes publiques de la boîte de dialogue (ou la vôtre) pour examiner ces valeurs et agir en conséquence.

Pour plus dans voir my question et my response à moi-même pour la question similaire.

+0

Réponse correcte mais incomplète. Correct pour dire que vous devez transmettre des valeurs au dialogue et y agir de manière appropriée. Mais vous devez retourner false depuis le gestionnaire de clic ('.button-to') pour que l'action par défaut de ce bouton soit évitée. – BuddhiP