Using image_tag as submit button inside form_for block


I’m using standard Rails form builder form_for and haml.
I’m trying to replace standard Rails submit button with an image.
In addition Javascript runs on submit event.
How can I replace the f.submit button by an image-based button?

remote_form_for(@message, :html => {:onsubmit => “jQuery()”})
do |f|
= f.error_messages

  • #… regular form fields with some more indentation …
    = f.submit ‘Send It’

          -# I thought this might work, but onsubmit event is not

firing. Plus it’s a security bomb if JS is disabled in browser.
= link_to image_tag(‘message_send.png’), :action =>
‘create’, :method => :post, :id => @message

Would really appreciate your help.

Thank you,

I don’t know much about haml, but I wanted the same thing than you.
Here’s what I did

<% form_remote_tag( :url=>{:action=>‘moderate’,
:complete=>“Form.reset(‘new_message_form’)”) do %>
<%= hidden_field_tag ‘whatever’ %>

<%= text_area 'message', 'text', :rows=>3 %>


<%= image_submit_tag "button.png", :name => "submit", :onClick => "some JS here" %>

<% end %>

Hope this helps,


Le 11 mars 2010 à 06:27, Liberty1776 a écrit :