1

我有一个动作,其形式为 1)从列表框中选择产品 2)调用远程控制器动作,该动作返回不同仓库中该产品的可用数量

这是使用带有 :remote => true 的 link_to 完成的

  <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 部分中返回了正确的值。

问题是在返回部分后,页面会完全重新加载,我不希望这样。

为什么会这样?我还试图弄清楚如何使用整个 url 而不是使用“#”和 jquery 来调用 link_to,但在这种情况下,我不知道如何在 link_to 帮助器的选择字段中传递值。

4

1 回答 1

0

在你的表单标签中,把这个

<form onsubmit="return false;">

如果没有看到您的表单 HTML,很难说为什么会发生这种情况,但我认为 get_product 按钮正在提交表单并调用点击处理程序函数。

于 2013-01-24T16:12:09.233 回答