Rails 3.如何在按钮标签中使用disable_with?

时间:2012-01-31 17:55:50

标签: html ruby-on-rails ruby

我最近开始测试web_app_theme插件。在创建按钮我有这样的东西......

<button class="button" type="submit">
  <%= image_tag("web-app-theme/icons/tick.png", :alt => "#{t("web-app-theme.save", :default => "Save")}") %> <%= t("web-app-theme.save", :default => "Save") %>
</button>

如何将:disable_with => "Processing"添加到此按钮以防止重复记录?

我尝试t("web-app-theme.save", :default => "Save"), :disable_with => "Processing",但当然,这不起作用。

2 个答案:

答案 0 :(得分:10)

您需要使用表单标记帮助程序方法 - 这样的事情应该这样做:

<%= button_tag :class => "button", :type => "submit", :data => { :disable_with => "Processing" } do %>
  <%= image_tag("web-app-theme/icons/tick.png", :alt => "#{t("web-app-theme.save", :default => "Save")}") %> 
  <%= t("web-app-theme.save", :default => "Save") %>
<% end %>

以下是指向button_to方法的API文档的链接:http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-button_to

2013年12月14日更新了Rails 3.2&amp; 4语法。

答案 1 :(得分:5)

button_tag完全是可选的。你可以像在html中一样轻松地编辑标签:

<button class="button" type="submit" data-disable-with="Processing">
  <%= image_tag("web-app-theme/icons/tick.png", :alt => "#{t("web-app-theme.save", :default => "Save")}") %> <%= t("web-app-theme.save", :default => "Save") %>
</button>

:disable_with所做的就是为元素添加data-disable-with属性。然后jquery-rails gem的javascript(jquery_ujs.js)为你完成其余的禁用工作。

当然,假设您使用的是rails 3.0或更高版本。