2012-07-22 6 views
27

Tengo una forma de como/diferencia de botón usando ajax:Rieles y de arranque - Añade etiquetas HTML para un texto botón enviar

= 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..." 

La forma funciona perfectamente.

Me gustaría agregar un ícono al frente del texto en el botón de enviar. El código haml para añadir el icono es el siguiente (en arranque Twitter):

%i.icon-heart.icon-white 

¿Hay una manera de añadir este código HTML para el botón? Intenté agregarlo como html simple, pero los rieles lo procesaron como texto.

ACTUALIZACIÓN

tengo logran encapsular el botón de enviar en un span class que contiene el icono y el estilo apropiado. Ahora necesito quitar cada estilo en el botón ...

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

Respuesta

92

Gracias a ismaelga, encontré this SO question.

Ésta es la solución:

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

sí, porque el de arriba no está funcionando – Ben

+1

Muy bueno ... ¡Funcionó como un amuleto! –

+7

Incluso si esta solución funciona, no me gusta porque no puedo ver la variable f más :) Me gusta enviar un formulario de la nada ... –

3

Pruebe esto. No lo he probado, pero creo que es posible hacer algo como esto.

= 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 

Esto era posible si utilizabas simple_form. Lo siento.

Así que intentarlo sería

= 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

Intenté instalar SimpleForm y usar su primera respuesta, pero no funciona. Tu segundo tampoco ... –

+0

¡Ah!Gracias a su respuesta, ¡encontré nuevas palabras clave para buscar en Google! [esta pregunta SO] (http://stackoverflow.com/questions/10858582/html-code-inside-buttons-with-simple-form) fue realmente útil. –

+0

También respondí esa pregunta :) Espero que encuentren una solución –

2

Justin D's respuesta me ayudó también. Si viene aquí desde Google y que está buscando para una aplicación delgada, puede hacerlo de esta manera:

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

usuarios delgados reconocerán la necesidad de la > 's.

Esto funcionó para mí con rieles 4.1.5, 2.1.2, y Rubí de arranque-Sass 3.2 a partir del 24 de septiembre de 2014.

+0

Esto me ahorró horas de frustración. +1! –

2

Otra opción podría ser button en lugar de submit

ver rieles documentación FormBuilder#button

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

Por favor, intente el código de abajo. Funciona

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

Sería genial agregar alguna explicación. –

+0

Su respuesta no incluye el html dentro de la etiqueta de envío, por lo que no incluye el ícono. –

Cuestiones relacionadas