Aggiungi una classe CSS a <% = f.submit%>


Risposte:


352
<%= f.submit 'name of button here', :class => 'submit_class_name_here' %>

Questo dovrebbe fare. Se ricevi un errore, è probabile che non stai fornendo il nome.

In alternativa, puoi modellare il pulsante senza una classe:

form#form_id_here input[type=submit]

Prova anche quello.


Eccellente! Grazie Srdjan. Una piccola curiosità: ho provato a usare disable_withquesti pulsanti di invio, ma non sembrano mai funzionare. C'è un motivo per cui lo sai? +1
sscirrus

3
Prova con un hash per le opzioni: {: class => 'class_name',: disable_with => 'Editing ...'}. Questo seguirà il nome del pulsante. Dovrebbe funzionare, o almeno è documentato come quello.
Srdjan Pejic,

3
Nota che devi submitusare esplicitamente una stringa ('name of button here') come primo argomento per poter usare l'hash: class come nella risposta sopra. Se non hai quella stringa, riceverai un messaggio di errore.
thewillcole,

7
aggiungi classe senza rimuovere il valore predefinito rispondi qui stackoverflow.com/questions/8811254/…
Naoise Golden

<%= form.submit :class => 'class_name' %>funziona, se non vuoi usare il nome.

141

È possibile aggiungere una dichiarazione di classe al pulsante di invio di un modulo procedendo come segue:

<%= f.submit class: 'btn btn-default' %> <- Nota: non c'è virgola!

Se si sta modificando un _ form.html.erb parziale di uno scaffold e si desidera mantenere la modifica dinamica del nome del pulsante tra le azioni del controller, NON specificare un nome 'name'.

Senza specificare un nome e in base all'azione del modulo viene visualizzato il pulsante otterrà la .class = "btn btn-default"(classe Bootstrap) (o qualunque cosa .classtu specifichi) con i seguenti nomi:

  • Aggiorna nome_modello

  • Crea nome_modello
    (dove nome_modello il nome del modello dello scaffold)


13
Pur avendo meno voti della risposta selezionata, questa è la soluzione che molte persone vorranno utilizzare.
IAmNaN,

3
Questo è quello che stavo cercando di trovare
Sandeep Garg,

1
Utile e consente l'aggiunta di un attributo HTML ("id" o "class", come nell'esempio) senza modificare il testo predefinito del pulsante generato da Rails.
TK-421,

1
IMO questa è la risposta migliore perché preserva il comportamento dell'assegnazione dinamica del testo al pulsante ("Crea" o "Aggiorna") in base all'azione del controller
sixty4bit,

Sicuramente come diceva @ sixty4bit. Dovrebbe essere impostato il testo del pulsante nei file di traduzione, quindi il modulo può essere riutilizzato attraverso diverse azioni del controller, ad esempio "crea commento" vs "aggiorna commento". Visualizza questa risposta - stackoverflow.com/a/18255633/5355691
Jarvis Johnson

26

Pulsante "primario" di Rails 4 e Bootstrap 3

<%= f.submit nil, :class => 'btn btn-primary' %>

Produce qualcosa di simile:

screen-2014-01-22_02.24.26.png


2
Questo è in realtà il migliore perché la specifica nildel nome mantiene il comportamento predefinito dell'helper dove, se trova una variabile di istanza per l'oggetto che viene creato / visualizzato, ad esempio @person, form_fornominerà il pulsante di conseguenza (Aggiorna Foo o Crea Foo) e anche FormBuilder sceglie l'azione corretta. In questo modo è possibile estrarre il codice del modulo in un parziale e utilizzarlo per visualizzare l'oggetto modello (se si desidera utilizzare un modulo per visualizzarlo), aggiornarlo e creare anche una nuova istanza.
Paul-Sebastian Manole,

13

Come dice Srdjan Pejic, puoi usare

<%= f.submit 'name', :class => 'button' %>

o la nuova sintassi che sarebbe:

<%= f.submit 'name', class: 'button' %>

9

Soluzione quando si utilizza form_with helper

Per coloro che usano Rails 5.2 l' form_withhelper con : non aggiungere la virgola !

<%= f.submit class: 'btn btn-primary' %>

Schermata senza virgola

HTH!


2

Per impostazione predefinita, Rails 4 utilizza l'attributo 'valore' per controllare il testo del pulsante visibile, quindi per mantenere pulito il markup che userei

<%= f.submit :value => "Visible Button Text", :class => 'class_name' %>

0

entrambi funzionano <%= f.submit class: "btn btn-primary" %>e <%= f.submit "Name of Button", class: "btn btn-primary "%>

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.