0

コレクションの選択があり、ページを更新しようとしており、ユーザーがコレクションの選択から選択したときに org_id を URL に渡します。collection_select は次のようになります...

<div id="org-select">
  <%= collection_select :org, :id, Org.all, :id, :name %>
</div>

application.jsには...

$(document).ready(function(){
    $("#org-select").on("change","select",function(){
      val = $(this).children('option:selected').val();
      window.location = '/sessions?org_id='+ val;
    });
});

ユーザーが coll_select から新しい組織を選択すると、ページが更新されます。ただし、私のURLは次のようになります..

http://localhost:3000/sessions?org_id=2

org_id ($this.val()) は毎回 2 に設定されています。ドロップダウンから新しい組織を選択しても更新されません。ページは更新されていますが、id は毎回 2 に設定されています。

これがレンダリングされたHTMLです...

<div id="sessions">
<div id="org-select">
  <select id="org_id" name="org[id]"><option value="1">Lumbees</option>
<option value="2">Tuskarora</option></select>
</div>

現在発生している問題は、ページのデフォルトでドロップダウンで「Lumbees」が選択されており、別の値を選択しても、ページが「Lumbees」にリダイレクトされることです。何か案は?明らかにどこかにリダイレクトがありますが、 app/views/sessions/index.html.erb には何も見つかりません。

4

4 に答える 4

0

あなたのコレクションの選択IDは何ですか、それを推測するorg_idか、カスタムIDを書いてください。divの変更を要求していますが、これは正しくありません。

<div id="org-select">
  <%= collection_select :org, :id, Org.all, :id, :name,{},{:id=>"org_id"} %>
</div>

$("#org_id").on("change", function(){
  window.location = '/sessions?org_id='+ $(this).val()
});
于 2013-07-23T12:54:07.587 に答える
0

次に試してください:

更新しました

$(document).ready(function(){
    $("#org-select").on("change","select",function(){
        val = $(this).children('option:selected').val();
        window.location = '/sessions?org_id='+ val;
    });
});
于 2013-07-23T12:59:21.017 に答える