web-dev-qa-db-ja.com

Railsフォームヘルパーを使用して、送信用のボタンタグを作成する方法はありますか?

Wufooでボタンを作成しようとしています( ボタン要素の再発見

次のようなコードを書きたいと思います。

<%form_tag search_path, :method => :get, :class => 'search' do %>
  <%=text_field_tag :search, params[:search] -%>
  <%=button_tag 'search', :name => nil-%>
<%end%>

次のHTMLを生成するには(input [type = "submit"]タグの代わりに)

<button type="submit" class="positive">
    <img src="/images/icons/tick.png" alt=""/> 
    Save
</button>

メソッドはすでに存在しますか?それとも私は自分のヘルパーを転がす必要がありますか?

28
Jonathan

これを実現するには、content_tagを使用できます。それはあなたがやりたいことをするためのより手ごわい方法です。ただし、生のHTMLよりも長くなります。

<% content_tag :button :type => :submit, :class => :positive do %>
   <%= image_tag "icons/tick.png"%>
   Save
<% end %>

生成する

<button type="submit" class="positive">
    <img src="/images/icons/tick.png" alt="Tick"/> 
    Save
</button>

ただし、これを開始点として使用すると、独自の堅牢なヘルパーをロールしたり、部分的に抽象化したりしても問題はありません。

37
EmFi

全体をボタンで囲むのではなく、 image_submit_tag ヘルパーを使用して画像送信タグを作成できます。

<%
image_submit_tag("login.png")
# => <input src="/images/login.png" type="image" />

image_submit_tag("purchase.png", :disabled => true)
# => <input disabled="disabled" src="/images/purchase.png" type="image" />

image_submit_tag("search.png", :class => 'search-button')
# => <input class="search-button" src="/images/search.png" type="image" />
%>

<img>の上に「保存」テキストを表示する必要がある場合、これは探しているものではない可能性があります

2
meagar

JQuery Cheats Gemを使用する https://github.com/plowdawg/jquery_cheats そしてあなたの見解ではそれはただ

<%= submitimage("/path/to/image.png","Alternate Text") %>

注:代替テキストはオプションです。

0
Travis Pessetto