form_tag после успеха Rails 3 - PullRequest
       1

form_tag после успеха Rails 3

0 голосов
/ 21 марта 2012

Я использую form_tag

<%= form_tag url_for(:action=>'url'), :onclick=> "$('.submit_btn').addClass('disabled');", :complete=>$(".submit_btn").removeClass("disabled"), :method=>"post", :remote =>true do %>
...........

...............

<%= submit_tag "Create", :class=>"submit_btn", :disable_with => "Please wait..." %>

Во время отправки формы онклик отключил кнопку, и это правильно. Однако, как только я получаю ответ, он не удаляет «отключенный» класс из кнопки отправки. Я посмотрел в Интернете и API документы ... но не смог найти способ заставить это работать.

Я хочу, чтобы форма отправляла данные, отключенные кнопкой, и при включении ответа. *

Может ли кто-нибудь предоставить указатели?

Спасибо Вирусный

1 Ответ

1 голос
/ 21 марта 2012

Предположим, что вы используете jquery-ujs, нет необходимости делать это вручную, что означает, что вы должны удалить части :onclick и :complete - просто добавьте :disable_with, а jquery-ujs сделает все остальное для тебя.

Так ваш код станет:

<%= form_tag url_for(:action=>'url'), :method=>"post", :remote =>true do %>
<%= submit_tag "Create", :class=>"submit_btn", :disable_with => "Please wait..." %>

Edit:

Если вы хотите выполнить некоторые пользовательские операции до / во время / после этого AJAX-запроса, вы должны связать форму с теми пользовательскими событиями, которые запускает jquery-ujs ( ссылка здесь ). Например, следующий код выполняет то, что вы хотите:

<script>
  $('#form-id').bind({
    'ajax:before': function () {
      $('.submit_btn').addClass('disabled');
    },

    'ajax:complete': function () {
      $('.submit_btn').removeClass('disabled');
    }
  });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...