1

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 パーシャルに返されます。

問題は、パーシャルを返した後、ページが完全にリロードされることです。これは望ましくありません。

なぜこうなった?また、「#」と jquery を使用する代わりに、URL 全体で link_to を呼び出す方法を見つけようとしましたが、この場合、link_to ヘルパーの選択フィールドに値を渡す方法がわかりません。

4

1 に答える 1

0

フォームタグに、これを入れてください

<form onsubmit="return false;">

フォームの HTML を見ないと、なぜこれが起こっているのかわかりませんが、get_product ボタンがフォームを送信し、クリック時のハンドラー関数を呼び出していると思います。

于 2013-01-24T16:12:09.233 に答える