2016-06-01 3 views
0

テーブルの結果をフィルタリングするために使用する選択フィールドがあります。 selectからオプションを選択すると、ajaxが起動してテーブルが更新されますが、テーブルが更新されるとselectがリセットされます。フィルタにテキストボックスを使用すると、この問題は発生しません。JQuery ajaxフォームのサブミットは選択値をリセットし、それを保持しません

形式:

<%= form_tag items_path, method: :get, class: "navbar-form search-form", remote: true do %> 
    <%= select_tag :search, options_from_collection_for_select(Model.all, "id", "id"), include_blank: true, class: "form-control", id: "filter-key" %> 
<% end %> 

JS/jQueryの選択値をリセットする必要があります返されていたスクリプトで

$(document).ready(function(){ 

    $(document).on("change", "#filter-key", function(){ 
    var form = $('.search-form'); 
    $.get(form.action, form.serialize(), null, 'script'); 
    return false; 
    }); 

}); 
+1

選択をリセットするものはありません。たぶん、返されているスクリプト内の何かがそれをやっているのでしょうか? – Barmar

+0

私は応答を確認します。私はそのようなものでなければならないと思う。私はそれがブラウザの問題かもしれないと思ったが、それはすべて同じである。セットアップ中の何かが間違っています。 – porterhaus

+0

'form.action'は' form [0] .action'または 'form.attr( 'action')'でなければなりません。 'form'はjQueryオブジェクトですが、' action'はDOMプロパティです。 – Barmar

答えて

0

何か。値を保存してAJAXコードに戻すことができます。

var self = $(this); 
var oldValue = self.val(); 
$.getScript(form.attr('action'), form.serialize(), function() { 
    self.val(oldValue); 
}); 
+0

@barmer問題は、私がフォームを配置した場所であることが判明しました。それはajaxが完了した後に再レンダリングされていた部分の中にありました。私は自分の回答内容を確認するためにあなたの提案を見てくれました。それは死んでしまいました。 – porterhaus

関連する問題