В Rails 2.3.3 я хочу сделать что-то вроде:
<% form_remote_tag :url => "/some/path/", :loading => "loadingFunction(this)", :complete => "completeFunction(this,request)" do %>
По сути, я хочу иметь возможность передавать этот конкретный тег формы в: complete или: loading функции обратного вызова (вОтносительный способ - я не хочу использовать идентификатор - я хочу иметь возможность получить тег, которому соответствует вызов: complete: естественный результат вызова: complete для тега формы **).
См. Документация по Rails для form_remote_tag .В частности, Rails генерирует код, подобный следующему, для события onsubmit: новый Ajax.Request ('/ some / path /', {asynchronous: true, evalScripts: true, onComplete: function (request) {completeFunction (this, request)}, onLoading: function (request) {loadingFunction (this)}, параметры: Form.serialize (this)});return false; ". Обратите внимание, как вызовы функций заключены в функцию (запрос) {}, которая находится внутри нового Ajax.Request ().
Итак," this "," jQuery (this) "," jQuery(this) .closest ('. someParentElementOfTheForm') "и т. д. не работают.
** Я делаю это потому, что: я рендерил произвольное число" form_remote_tag "с помощью когдастраница загружена, и пользователь может инициировать события, которые вызывают произвольное появление «form_remote_tag» (с похожим содержимым в каждой форме, но количество элементов в каждой форме также произвольно). Если у меня есть один form_remote_tag во всемстраница, есть несколько основных проблем:
Пользователь будет редактировать только один раздел страницы (который в моем текущем дизайне соответствует одной форме), но все элементы формы'данные на странице должны быть отправлены в запросе
Для отслеживания форм и их элементов потребуется какой-то грязный способ, предоставляя им такие идентификаторы, как:' form-12' , 'форма-12-рaramfield-13 'и т. д.
Очень сложно разрешить: пользователю отправлять одну форму, а во время загрузки этой формы через AJAX отправлять другие формы (включая возможностьинициирование события, которое приводит к появлению новой формы, а затем ее отправка) из-за проблем с отслеживанием места размещения данных ответа для каждого запроса