2010-12-13 13 views
0

Ich bin mit einem Rails-URL Helfer, die (für Bot-Schutz, etc.) Umleitung in einer Form verschachtelt, etwa so:Wie gehe ich von Formularaktionen mit JQuery UI Dialog um?

<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> 

(Oben, das Verfahren nicht ein POST sein müssen .. .)

ich Klicks auf dieser .Taste-to-Element mit jQuery UI-Dialog, wie so behandelt werden soll: die ganze Zeit kommen würde, aber ich kann

$('.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! 
        } 
      } 
     }); 
    }) 

Es scheint, wie diese Art der Sache finde nichts, was mir zu dem Ergebnis verhilft, das ich suche. Irgendwelche Vorschläge?

Danke,

Lille

Antwort

1

über diese Frage kam, nachdem ein ähnliches veröffentlichen. Grundsätzlich finde ich die Verwendung der .data Kollektion am besten. Legen Sie vor der Instanziierung einige vars in $('#dialog').data fest, und Sie können dann das Formular verwenden, um sie nach Bedarf zu ändern.

Dann können Sie die öffentlichen Methoden des Dialogs (oder Ihre eigenen) verwenden, um diese Werte zu untersuchen und entsprechend zu handeln.

Für mehr in mir my question und my response für die ähnliche Frage.

+0

Korrekte, aber unvollständige Antwort. Korrigieren Sie, dass Sie Werte an den Dialog übergeben und entsprechend darauf reagieren müssen. Sie müssen jedoch false aus dem Click-Handler ('.button-to') zurückgeben, damit die Standardaktion dieser Schaltfläche verhindert wird. – BuddhiP