Подтвердить что ты не робот

Как отключить кнопку отправки формы "a là Ruby on Rails Way"?

Я использую Ruby on Rails 3, и я хотел бы отключить и toogle класс CSS form.submit, когда форма отправлена ​​AJAX и до тех пор, пока HTTP-запрос AJAX не будет завершен (я использую стандартную jQuery-структуру JavaScript для JavaScript).

Моя форма следующая:

<%= form_for(@article, :remote => true) do |form| %>
    ...
    <%= form.submit(nil, {:id => 'button_id', :class => 'button_class'}) %>
<% end %>

Как я могу сделать это в "общем" / "хорошем" / "правильном" способе?

4b9b3361

Ответ 1

В коде Rails jQuery bridge (jquery_ujs.js) на самом деле есть помощник для этого.

<%= form.submit "Save", id: "button_id", class: "button", disable_with: "Submitting..."

Он заменит текст кнопки на значение, которое вы даете.

См. http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-submit_tag

Изменение API:, как предлагает Ренан в комментарии ниже, а Rails 4 beta есть уведомление об устаревании на опции disable_with. Он должен быть изменен как атрибут данных:

<%= form.submit "Save", id: "button_id", class: "button", data: {disable_with: "Submitting..."} %>

Это должно работать со всеми последними версиями Rails, так как это вариант. Поэтому при обновлении до Rails 4. это будет одно меньшее уведомление об отказе.: