Ich verwende eine Front-End-Vorlage in meiner Rails-Anwendung, die Schaltflächen mit CSS formatiert, indem sie sie aus dem Tag auswählt.Erstellen eines Schaltflächenelements anstelle eines Eingabeelements mit Rails-Helfern
Das Problem besteht darin, dass Rails Form Helpers Schaltflächen rendern, indem HTML-Code mit Tags anstelle von Tags erstellt wird. Deshalb, wenn Sie den folgenden html.erb Code ausführen:
<%= simple_form_for @waiter do |f| %>
<%= f.input_field :email %>
<%= f.button :submit, "My button" %>
<% end %>
Es macht die Taste als:
<input type="submit" name="commit" value="My button" class="btn btn-default" data-disable-with="My button">
Und ich möchte eine HTML-Code erzeugen, für die Schaltfläche, die ähnelt:
<button relevant_attributes="relevant values">My button</button>
ich habe bisher ohne Erfolg versucht:
- Hinzufügen einer CSS-ID zum Eingabe-Tag und Ändern der Vorlagen-Stylesheets zum Reproduzieren der Schaltflächenstile (Ich habe festgestellt, dass dies aus Gründen, die hier schwer zu erklären sind, keine effektive Option ist).
- Verwenden von Vanilla Rails Form Helpers anstelle der simple_form Einsen (rendert auch Eingabe-Tag-Elemente).
Die einzige Lösung ist bisher direkt ein HTML-Button-Element zu erstellen (wie unten) und es zu einer onClick JS Ereignisbindung, die einen Ajax-Request auslöst, die das Formular über JS übermittelt:
<%= simple_form_for @waiter do |f| %>
<%= f.input_field :email %>
<button id="my-button">My button</button>
<% end %>
Die vorliegende Lösung scheint nicht sehr elegant zu sein. Kann jemand eine bessere Lösung empfehlen? Ist es möglich, Knopfelemente durch Rails-Helfer zu produzieren?