select2 initSelection для повторного отображения формы

Я использую Select2-rails '3.5.3, я могу выполнить поиск с удаленными данными и сохранить их, проблема в том, как я могу восстановить выделенный текст (например, если пользователь нажал на редактирование), проблема: initSelection не запускается при форме загружен с редактированием

ниже мой код

hotelcheck.coffee

  $('.select2-autocomplete').each (i, e) ->
  select = $(e)
  options = { 
    multiple: false
    width: "98%"
    placeholder: "Type Hotel name"
    minimumInputLength: 3
  }
  options.ajax =
    url: select.data('source')
    dataType: 'json'
    type: "GET"
    quietMillis: 250
    # input untuk program
    data: (term, page) ->
      { q: term, 
      page: page,
      per: 25 }
    results: (data) ->
      { results: $.map(data, (item) ->
        {
          text: item.name
          id: item.id
        }
      ) }
    initSelection: (element, callback) ->
      id = $(element).val()
      if id != ''
        $.ajax('/hotels/' + id + '.json', dataType: 'json').done (data) ->
          selected = 
            id: element.val()
            text: data.name
          callback selected
          return
      return
  options.dropdownCssClass = 'bigdrop'
  select.select2 options

Форма для показа скрытого поля, я сохраняю контент в hotel_id

<%= f.hidden_field :hotel_id, data: { source: search_name_hotels_path }, class: "select2-autocomplete", :value => "#{f.object.hotel_id unless f.object.new_record? || f.object.hotel_id.nil? }" %>

контроллер отеля для AJAX отправить значение

def show
  @hotel = Hotel.find(params[:id])
  puts "running fill name"

  respond_to do |format|
    format.json { render json: @hotel }
  end
end
  • исходные данные = таблица отелей с идентификатором поля, именем
  • таблица клиента = заказ с полем hotel_id

1 ответ

Решение

С этой страницы это выглядит как initSelection НЕ должно быть в options.ajax, но только в options, Я бы попробовал скопировать пример, который у них есть, и отредактировать его под ваши нужды. ИЛИ обновить до 4.0.0что, кажется, намного проще.

Другие вопросы по тегам