2013-05-06 127 views
0

我在Rails中有用戶的選擇框。有沒有簡單的方法,如何從該選擇框中獲取選定的實例?從selectbox中獲取實例

show.html.erb

<select id="user_select" name="user_select" class="input-medium"> 
    <% @users.each do |user| %> 
     <option><%= user.username %></option> 
    <% end %> 
</select> 
<!-- button to addfriend method like on next example --> 

在這個時候,我有這樣的事情在這個地方:

<ul id="user_list" name="user_list"> 
    <% @users.each do |user| %> 
     <li><%= user.username %></li> 
     <%= link_to "Add", addfriend_project_path(@project, :user_id => user.id) %> 
    <% end %> 
</ul> 

,我需要得到一些用戶信息我的方法 - > ID的選擇框將是最好的。

+1

with jQuery:'$('#user_select')。val()' – MrYoshiji 2013-05-06 15:41:50

+0

但它只返回用戶名是寫在該選擇框的權利? – medy75 2013-05-06 15:43:01

+0

我的答案幫助@ medy75? – MrYoshiji 2013-05-30 23:49:47

回答

1

而不是這樣做:

<select id="user_select" name="user_select" class="input-medium"> 
    <% @users.each do |user| %> 
     <option><%= user.username %></option> 
    <% end %> 
</select> 

使用select_tag方法從表單助手來:

<%= select_tag :user_select, options_for_select(@users.map{|u| [u.username, u.id]}), class: 'input-medium' %> 

,然後使用jQuery獲得USER_ID在選擇框中選擇:

var user_id = $('#user_select').val(); 
# This will alert the selected user_id every time the select_box changes: 
$('#user_select').change(function(event){ 
    alert($(this).val()); 
}); 
+0

這是如何做到這一點的最佳方式?這並不像我期望的那樣優雅。 – medy75 2013-05-06 17:29:47

+0

是的,這是執行@ medy75的最佳方式:當用戶更改select_box(Ruby位於服務器端)時,您需要在客戶端使用javascript來捕獲事件。 – MrYoshiji 2013-05-06 17:37:46