Как я могу достичь: успеха и: раньше с form_for? - PullRequest
1 голос
/ 29 марта 2011

Как мне добиться: before и: success с form_for?Так же, как мы используем его с form_remote_tag.

<% form_remote_tag(:url => {:controller => "test",:action => "backup"},
            :before => %($('message').innerHTML = "";Element.show('spinner')),
            :success => %(Element.hide('spinner'))) do -%>

Ответы [ 2 ]

3 голосов
/ 29 марта 2011

Поскольку Rails 3 хочет использовать ненавязчивый Javascript, поэтому размещать javascript внутри html формы сейчас - плохая практика.

Теперь вы должны использовать наблюдатели вне вашего кода, например:

$('#test_backup_form').observe('before', function(event) {
   # code
});
$('#test_backup_form').observe('success', function(event) {
   # code
});

и т.д.

2 голосов
/ 29 марта 2011

С обычным form_tag, часть «success» ничего не значит (потому что пользователь перешел на другую страницу).Однако вы можете имитировать поведение части «до» следующим образом:

<% form_tag({:controller => 'test', :action => 'backup'}, {:onSubmit => %($('message').innerHTML = "";Element.show('spinner'))}) do -%>

Или с помощью form_for:

<% form_for @object, :html => {:onSubmit => %($('message').innerHTML = "";Element.show('spinner'))} do |f| -%>

Обратите внимание, что пользователь может видеть вращающийся элемент только длякороткая секунда, прежде чем они перейдут на следующую страницу.

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