2012-07-22 9 views
27

Ho una forma per un tipo/a differenza pulsante utilizzando AJAX:Rails e bootstrap - Aggiungi tag HTML per inviare un testo pulsante

= form_for like, :html => { :method => :delete}, :remote => true do |f| 
= f.submit pluralize(@video.likes.count, 'like'), :class => "btn btn-warning btn-mini", "data-disable-with"=> "Just a moment..." 

Il modulo funziona perfettamente.

Vorrei aggiungere un'icona davanti al testo nel pulsante di invio. Il codice Haml per aggiungere l'icona è la seguente (Twitter bootstrap):

%i.icon-heart.icon-white 

Esiste un modo per aggiungere questo html al pulsante? Ho provato ad aggiungerlo come semplice html, ma le rotaie lo hanno reso come testo.

UPDATE

devo gestire per incapsulare il pulsante di invio in uno span class che contiene l'icona e lo stile appropriato. Ora ho bisogno di rimuovere ogni stile sul pulsante ...

%span.btn.btn-danger.btn-mini 
    %i.icon-heart.icon-white 
    = f.submit pluralize(@video.likes.count, 'like') 

risposta

92

Grazie a ismaelga, ho trovato this SO question.

Questa è la soluzione:

<%= button_tag(type: 'submit', class: "btn btn-primary") do %> 
<i class="icon-ok icon-white"></i> Save 
<% end %> 
+0

sì, perché quello sopra non funziona – Ben

+1

Molto bello .. Ha funzionato come un fascino! –

+7

Anche se questa soluzione funziona, non mi piace perché non riesco più a vedere la variabile f :) Mi sembra di inviare un modulo dal nulla ... –

3

Prova questo. Non ho provato ma penso che sia possibile fare qualcosa di simile.

= f.submit :class => "btn btn-warning btn-mini", "data-disable-with"=> "Just a moment..." do 
    %i.icon-heart.icon-white 
    = pluralize(@video.likes.count, 'like') 
end 

Quindi questo era possibile se si utilizzava simple_form. Mi dispiace.

Quindi un altro tentativo sarebbe

= f.submit "#{pluralize(@video.likes.count, 'like')} <i class='icon-heart icon-white'/>".html_safe, :class => "btn btn-warning btn-mini", "data-disable-with"=> "Just a moment..." 
+0

Ho provato a installare SimpleForm e ad usare la prima risposta, ma non funziona. Il tuo secondo neanche .. –

+0

Ah!Grazie alla tua risposta, ho trovato nuove parole chiave per cercare su Google! [questa domanda SO] (http://stackoverflow.com/questions/10858582/html-code-inside-buttons-with-simple-form) è stata davvero d'aiuto! –

+0

Ho anche risposto a questa domanda :) Spero che tu possa trovare una soluzione –

2

Justin D's risposta mi ha aiutato anche. Se stai venendo qui da Google e siete alla ricerca di un'implementazione Slim, si può fare in questo modo:

= button_tag(type: 'submit', class: 'btn btn-default') do 
    span.glyphicon.glyphicon-floppy-disk> 
    | Save 
end 

utenti Slim riconosceranno necessità s' il >.

questo ha funzionato per me con Rails 4.1.5, Ruby 2.1.2, e bootstrap-sass 3.2 a partire dal 24 settembre 2014.

+0

Questo mi ha risparmiato ore di frustrazione. +1! –

2

Un'altra opzione potrebbe essere button al posto di submit

vedere Rails documentazione FormBuilder#button

= f.button :class => "btn btn-warning btn-mini" do 
    %i.icon-heart.icon-white 
    = pluralize(@video.likes.count, 'like') 
-2

Si prega di provare il codice qui sotto. Funziona

<%= f.submit :class => "btn btn-success btn-mini" %> 
+0

Sarebbe bello aggiungere qualche spiegazione. –

+0

La tua risposta non include l'html all'interno del tag di invio, quindi non include l'icona. –

Problemi correlati