Почему после возврата из link_to:remote => true отправляется вся форма?
У меня есть действие в форме, которое 1) выбирает продукт из списка 2) вызывает действие удаленного контроллера, которое возвращает количество элементов этого продукта, доступных на разных складах
Это делается с помощью link_to с:remote => true
<div id="products"></div>
<%= link_to 'Search product', "#", class: 'get_product', :remote => true %>
Тогда есть JavaScript
$('form').on('click', '.get_product', function(event) {
var url;
url='/recipes/get_product_list';
url += '/' + $('#recipe_product_id').val();
$.get(url, $(this).serialize(), null, "script");
return event.preventDefault();
});
У меня есть шаблоны.js.erb, и правильные значения возвращаются в частичном.html.erb.
Проблема в том, что после возвращения частичного, страница полностью перезагружается, и я не хочу этого.
Почему это происходит? Я также попытался выяснить, как вызывать link_to со всем URL вместо использования "#" и jquery, но в этом случае я не знаю, как передать значение в поле выбора в помощнике link_to.
1 ответ
Поместите это в тег формы
<form onsubmit="return false;">
Не видя HTML-форму, трудно сказать, почему это происходит, но я думаю, что кнопка get_product отправляет форму И вызывает функцию-обработчик при нажатии.