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 中选择一个新组织时,我正在刷新页面。但是,我的网址看起来像..

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 回答
0

您正在尝试从不div应该工作的元素中选择一个值。

如果您聆听selectinsted 的元素,它应该会更好地工作。

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

如果它仍然不起作用,您还可以尝试使用如下所示的选定值更精确。

$(document).ready(function(){
  $("#org-select select").on("change", function(){
    window.location = '/sessions?org_id='+ $(this).find(':selected').val()
  });
});
于 2013-07-23T13:05:19.137 回答
0

页面刷新的问题出在集合选择中...这是所有代码...

应用程序.js

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

index.html.erb

<%= collection_select :org, :id, Org.all, :id, :name, {:selected => params[:org_id]} %>

我需要指定一个默认选择的对象。

于 2013-07-24T12:38:32.447 回答