2016-03-02 58 views
1

在ajax成功後的js.coffee文件中,我需要將值放入選定框並選定一個特定名稱。如何選擇滑軌選擇框選項是從咖啡文件提供

_form.html,ERB

<%= f.select(:user_id, Item.find(session[:login_users_item_id]).try(:users).order_by_fullname.collect {|u| [ u.full_name, u.id ] }, selected: current_user.id)%> 

items.js.coffee

$.ajax '/users.json', 
type: 'GET', data: {"from_prod_bu" : selecteditemId}, 
success: (data) -> 
    userSelectBox = $('#prod_user_id') 
    userSelectBox.html('') 
    if data.length == 0 
    userSelectBox.append($('<option>').text('').attr('value', '')) 
    else 
    $.each data, (index,el) -> 
     userSelectBox.append($('<option>').text(el.firstname+' '+el.lastname).attr('value', el.id)) 

現在,用戶全名是在選擇框中列出,但我怎麼能給出選定的選項以顯示特定的用戶名。

感謝

+0

只是要清楚 - 你想預先選擇什麼特定的選項?如果該選項在您的JS代碼中已知,請參閱下面的答案。如果所選用戶的標識預計通過AJAX傳遞,則可以根據傳遞的方式輕鬆修改下面的代碼。 –

回答

1

所選擇的選項設置by using the selected attribute

假設要選擇存儲在你的JavaScript中的selectedUserId變量的用戶的id - 然後將下面的代碼應工作:

success: (data) -> 
    userSelectBox = $('#prod_user_id') 
    userSelectBox.html('') 
    if data.length == 0 
    userSelectBox.append($('<option>').text('').attr('value', '')) 
    else 
    $.each data, (index, el) -> 
     option = $('<option>') 
     .text(el.firstname + ' ' + el.lastname) 
     .attr('value', el.id) 
     if el.id == selectedUserId 
     option.attr 'selected', 'selected' 
     userSelectBox.append option 

詳情請參閱here上使用jQuery設置selected屬性。

+0

謝謝@Aleph Aleph – jissy