Rails 3. как использовать disable_with в теге кнопки? - PullRequest
4 голосов
/ 31 января 2012

Я недавно начал тестировать плагин 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 ]

10 голосов
/ 31 января 2012

Вам нужно использовать вспомогательные методы тега формы - что-то вроде этого должно сделать это:

<%= 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 %>

Вот ссылка на документацию по API для метода button_to: http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-button_to

Обновлено 14 декабря 2013 г. для синтаксиса Rails 3.2 и 4.

5 голосов
/ 31 января 2012

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 к элементу. Затем javascript из jquery-rails gem (jquery_ujs.js) выполнит за вас всю работу по отключению.

Это предполагает, конечно, что вы на рельсах 3.0 или выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...