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