I'm creating a form in Rails for submitting comments, and I want the submit button to be an image, rather than an HTML button. In this bit of documentation, it says the code is image_submit_tag
, but I can't get it to work in my code.
Here's what I'm working wit开发者_StackOverflow中文版h:
<% 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 %>
Thanks for the help.
I just fell over this one, trying to solve the same problem. A sudden thought made me just try something like this:
<%= f.submit "Comment", :type => :image, :src => "/images/comment-button.png" %>
Will create something like this:
<input id="comment_submit" name="commit" src="/images/comment-button.png" type="image" value="Comment" />
Try it out :-)
I believe the 'tag' methods cannot be called on the form builder object.
By 'tag' methods I mean things from the ActionView::Helpers::FormTagHelper module.
It should work if you do:
<div id="comment-button"><p>
<%= image_submit_tag("comment-button.png") %></p>
</div>
You can do it like so:
ERB:
<%= f.submit "" %>
CSS:
input[type="submit"]
{
background:url(mybutton.png);
}
Yup, the following should work:
<%= image_submit_tag("comment-button.png") %></p>
http://apidock.com/rails/ActionView/Helpers/FormTagHelper/image_submit_tag
Working from Zabba's example a more accessible solution would be:
View:
<%= f.submit "Submit" %>
CSS:
input[type="submit"]
{
background:url(mybutton.png);
text-indent: -9999em;
}
Please using delete on line:
<%= f.image_submit_tag("/assets/icon-search.png") %>
change into:
<%= image_submit_tag("/assets/icon-search.png") %>
more details on image_submit_tag
For rails 3.1 and above
<%= f.submit "Submit", :type => :image, :src => image_path("submit.png") %>
You can use the following JS trick.
1) In your application.js:
function submitFormWithoutButton(formId) {
document.getElementById(formId).submit();
}
2) Then in your form replace f.submit
line(s) with:
<%= link_to "#", onclick: "submitFormWithoutButton('ID_OF_YOUR_FORM')" do %>
<%= image_tag("PATH_TO_YOUR_AWESOME_ICON") %>
<% end %>
3) It takes only to replace uppercase placeholders with your form's id and path to the image file you want to use as a button.
Now you can submit your forms through nice and obedient links instead of stubborn and tricky buttons!
Don't forget to vote up if that helps!
精彩评论