2009-12-28 3 views
2

У меня возникли небольшие проблемы с выяснением способа отключения кнопки отправки в рельсах при отправке формы. Он отлично работает с отключенным javascript и символом ': disable_with' в функции 'remote_form_for # submit', но не может понять это при отправке через ajax. Есть предположения? Использование рельсов 2.3.5 и рубин 1.8.7.Rails Ajax Form Отключить кнопку отправки

+0

Это не ясно, что вы собираетесь делать с кнопкой отправить при подаче через AJAX. Вы собираетесь отключить кнопку отправки, пока запрос не вернется? Было бы полезно предложить решение, если бы вы могли сообщить нам, что именно вы намерены достичь, отключив submit. – Priyank

+0

Да, я хотел бы отключить кнопку отправки, когда пользователь отправит форму и снова включит, когда запрос ajax будет завершен. Я пытаюсь сделать так, чтобы пользователь не мог отправить форму дважды для одного и того же представления (и я не хочу использовать проверки для проверки уникальности, поскольку в базе данных допускаются дублирующиеся значения). – thomas

ответ

6

Вы можете скрыть кнопку отправки при выполнении запроса и показать загружаемое изображение во время выполнения запроса. Например, в form_remote_tag:

<% form_remote_tag :url => "/some_url", 
:loading => "$('submit_span').toggle(); $('loading_span').toggle();", 
:complete => "$('submit_span').toggle(); $('loading_span').toggle();" do %> 

-- FORM CONTENTS -- 

    <span id="submit_span"> 
    <%= submit_tag "Submit" %> 
    </span> 
    <span id = "loading_span" style = "display: none;"> 
    <%= image_tag("loading.gif")%> 
    </span> 
<% end %> 

Когда запрос завершается (успешный или неуспешный) вы UNHIDE отправки и скрыть продолжительность загрузки.

Другие документы на различных обратных вызовов:

http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html#M002174

Смежные вопросы