2011-03-05 11 views
12

Estoy creando un formulario en Rails para enviar comentarios, y quiero que el botón de enviar sea una imagen, en lugar de un botón HTML. En this bit of documentation, dice que el código es image_submit_tag, pero no puedo hacer que funcione en mi código.Agregar una imagen de botón de envío a un formulario de Rails

Aquí es lo que estoy trabajando con:

<% form_for [@post, Comment.new], :remote => true do |f| %> 
<p> 
    <%= f.label :body, "Add a comment" %><br /> 
    Name <%= f.text_field :name %><br /> 
    Website<%= f.text_field :website %><br /> 
    Twitter<%= f.text_field :twitter %><br /> 
    <%= f.text_area :body %> 
</p> 
<div id="comment-form"> 

    <div id="comment-button"><p> 
     <%= f.image_submit_tag("comment-button.png") %></p> 
     </div> 
</div> 
<% end %> 

Gracias por la ayuda.

+1

¿Qué ocurre? ¿Hay algún mensaje de error que pueda postear? –

+0

Obtengo el método 'undefined 'image_submit_tag' para # ' en Rails 3.0.3. ¿Es este un nuevo generador de formularios de ayuda (los documentos para v3.0.5 enumerarlo como uno ...) – Zabba

Respuesta

7

Puede hacerlo de esta manera:

ERB:

<%= f.submit "" %> 

CSS:

input[type="submit"] 
{ 
    background:url(mybutton.png); 
} 
+0

¡Lo tienes! Tomó un poco de estilo CSS, pero ahora se ve bien, gracias. – rottendevice

+1

Es fácil hacer que todo el mundo pueda acceder, vea la respuesta de thomasfedb. –

4

de trabajo del ejemplo de Zabba una solución más accesible sería:

Vista:

<%= f.submit "Submit" %> 

CSS:

input[type="submit"] 
{ 
    background:url(mybutton.png); 
    text-indent: -9999em; 
} 
11

creo que los métodos de 'etiqueta' no se pueden llamar en el objeto constructor de la forma.

Me refiero a los métodos 'tag' del módulo ActionView :: Helpers :: FormTagHelper.

que debería funcionar si lo hace:

<div id="comment-button"><p> 
    <%= image_submit_tag("comment-button.png") %></p> 
</div> 
47

me acaba de caer sobre éste, tratando de resolver el mismo problema. Un repentino pensamiento me hizo simplemente probar algo como esto:

<%= f.submit "Comment", :type => :image, :src => "/images/comment-button.png" %> 

creará algo como esto:

<input id="comment_submit" name="commit" src="/images/comment-button.png" type="image" value="Comment" /> 

Inténtelo hacia fuera :-)

+0

funciona como se esperaba ... :) – Bongs

+0

Impresionante, gracias. El modo css no sirve en mi caso porque tengo imágenes db-driven para el botón "enviar". – Arcolye

+7

Nota para los rieles> = 3.1 querrá utilizar un ayudante debido a la canalización de activos:: src => ruta_imagen ("submit.png") – Nate914375

1

Por favor, elimine el uso de la línea:

<%= f.image_submit_tag("/assets/icon-search.png") %> 

cambio en:

<%= image_submit_tag("/assets/icon-search.png") %> 

más detalles sobre image_submit_tag

+0

¡esto funciona genial! Rails 4.0.3 1 de julio. 2014 –

1

Para carriles 3.1 y anteriores

<%= f.submit "Submit", :type => :image, :src => image_path("submit.png") %> 
Cuestiones relacionadas