Ruby on Rails: So implementieren Sie die Schaltfläche Abbrechen in form_tag

8

Ich habe ein Grundformular, das den Helfer form_tag verwendet, aber ich möchte eine Abbrechen-Schaltfläche hinzufügen. Wie lautet die Syntax dafür? Ich möchte, dass die Schaltfläche "Abbrechen" als Schaltfläche und nicht als Link angezeigt wird, und führen Sie den Benutzer dann zu einer anderen URL (um anzugeben, dass das Formular nicht gesendet werden soll).

TY, Fred

    
fred basset 14.01.2013, 01:58
quelle

4 Antworten

21

Wenn Sie die Formularfelder löschen / zurücksetzen möchten, tun Sie, was dchacke vorschlägt.

Ich erwarte jedoch im Allgemeinen, dass eine Schaltfläche "Abbrechen" das Formular nicht löscht, sondern mich aus dem Formular nimmt, was bedeutet, dass ich es nicht einreichen möchte.

Wenn Sie das letztere wollen, mache ich einfach einen Link (oder Button) zu der Seite, auf die Sie beim Abbrechen gehen möchten, wie zum Beispiel:

%Vor%

Oder wenn Sie eine Schaltfläche möchten:

%Vor%

Fügen Sie das dann Ihrem Controller hinzu:

%Vor%     
99miles 14.01.2013, 05:22
quelle
22

Wenn Sie eine Schaltfläche zum Zurücksetzen meinen, fügen Sie Folgendes in Ihr Formular ein:

%Vor%

Getestet, es funktioniert gut und setzt alle Felder im Formular zurück.

    
weltschmerz 14.01.2013 02:54
quelle
2

Anstelle eines submit-Tags würde ich ein <button> -Tag vorschlagen, weil der Parameter :commit möglicherweise lokalisiert ist, was die Auswertung im Controller erschwert.

A button_tag kann einen Namen / Wert wie jedes andere Feld haben, so dass Sie im Grunde ein Flag damit erstellen können.

Der folgende Code ist, was ich verwenden würde:

in der Ansicht:

%Vor%

im Controller:

%Vor%

Viel sauberer imho, weil Sie sich auf eine Markierung anstelle eines (möglicherweise) lokalisierten Anzeigewerts verlassen.

    
Overbryd 06.04.2016 16:11
quelle
1

button_to scheint ein einfacher Weg, um dasselbe zu erreichen, aber es muss nach draußen gebracht werden der Form selbst, aber das kann leicht mit CSS behoben werden.

Um dies allgemeiner zu lösen (und auch für das Bearbeiten verschachtelter Ressourcen auf einer Ressource zu arbeiten, die noch nicht persistent ist), können Sie ein separates Formular für den Abbruch erstellen, das alle ursprünglichen Werte als ausgeblendete Felder enthält.

    
bert bruynooghe 08.12.2016 08:24
quelle

Tags und Links