Рендеринг частичной формы на странице с другим контроллером в Rails с помощью jQuery - PullRequest
0 голосов
/ 21 декабря 2011

На моей главной странице есть форма поиска, которая отправляется поисковому контроллеру.На той же странице у меня есть другая форма для регистрации новых ресурсов, которая отправляется на контроллер ресурсов.Форма ресурса отображается как часть, с тегом form_for внутри части.Все работает нормально, если проверка прошла успешно, но если это не так, а форма перерисовывается с помощью jQuery, кнопка отправки в форме ресурса больше не отправляется контроллеру ресурсов, а контроллеру поиска.Это потому, что свойства form_for устанавливаются при загрузке DOM при первоначальной визуализации страницы?Есть ли способ сделать эту работу?Есть ли что-то похожее на .live () - функцию, которую можно использовать в этом случае?

Вот как партиал изначально отображается в файле search / index.html.erb:

<div id="new_resource_form" style="display:block">
  <%= render "resources/resource_form" %>
</div>

Это форма form_for части resource_form:

<%= form_for @resource, :url => {:controller => 'resources', :id => @resource.id }, :remote => true do |f| %>

JQuery, используемый для перерисовки части, выглядит следующим образом:

$('#new_resource_form').html('<%= escape_javascript raw render 'resources/resource_form' %>')

1 Ответ

0 голосов
/ 21 декабря 2011

Когда вы нажимаете на кнопку «Отправить», событие кликает, пока оно не достигнет окружающей формы, и форма не будет отправлена ​​- кнопка «Отправить» фактически не «указывает» на что-либо.Похоже, что проблема, с которой вы столкнулись, заключается в том, что при повторной визуализации формы html размещает кнопку отправки за пределами формы ресурса и внутри формы поиска.Возможно, в вашем шаблоне html есть ошибка, которую браузер пытается исправить?

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