Bagaimana opsi yang dipilih kotak pilih Rails diberikan dari file kopi

Dalam file js.coffee setelah ajax sukses, saya perlu memasukkan nilai ke kotak pilih dengan nama tertentu yang dipilih.

_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)%>

item.js.kopi:

$.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))

Sekarang, nama lengkap pengguna dicantumkan di kotak pilih, tetapi bagaimana saya bisa memberikan opsi yang dipilih untuk menampilkan nama pengguna tertentu.

Terima kasih


person jissy    schedule 02.03.2016    source sumber
comment
Untuk memperjelas - opsi spesifik apa yang ingin Anda pilih sebelumnya? Jika opsi tersebut sudah diketahui dalam kode JS Anda, lihat jawabannya di bawah. Jika id pengguna yang dipilih diharapkan diteruskan melalui AJAX, kode di bawah ini dapat dengan mudah dimodifikasi tergantung cara penyampaiannya.   -  person Aleph Aleph    schedule 02.03.2016


Jawaban (1)


Opsi yang dipilih disetel dengan menggunakan atribut selected.

Misalkan id pengguna yang akan dipilih disimpan dalam variabel selectedUserId dalam JavaScript Anda - maka kode berikut akan berfungsi:

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

Lihat di sini untuk detail selengkapnya tentang menyetel atribut selected dengan jQuery.

person Aleph Aleph    schedule 02.03.2016