2013-05-06 73 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