В приложении Rails 3 я хочу, чтобы браузер вызывал удаленную функцию всякий раз, когда установлен определенный флажок. В Rails 2 это было легко сделать, пропустивform.submit() пропущен rails.js UJS observer
:onclick => remote_function(...)
к флажку helper. В Rails 3, remote_ * функции устарели, поэтому я попытался следующий обходной путь:
- создать форму вокруг флажка, используя
form_tag ... :remote => true
- отправить форму, вызвав
$("dummy_form").submit();
изonclick
обработчика
В файле rails.js, который поставляется в комплекте с Rails, есть наблюдатель, который слушает события submit
. Тем не менее, кажется, что они срабатывают только тогда, когда пользователь нажимает кнопку отправки, но не тогда, когда вызывается form.submit()
(пока тестируется только в FF).
Это имеет нежелательный эффект, что подача затем не выполняется в фоновом режиме через AJAX, но обычным способом, поэтому браузер покидает текущий сайт и отображает ответ от контроллера.
Кто-нибудь знает обходное решение? Может быть, совсем другой способ получить такую же функциональность?