select2 initSelection 用于重新显示表单
select2 initSelection for redisplayed the form
我正在使用 Select2-rails '3.5.3,我可以使用远程数据进行搜索并保存它,问题是我如何恢复所选文本(例如,如果用户按下编辑) , 问题:使用 edit
加载表单时未触发 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
- source data = hotel table with field id, name
- 客户 table = 订单字段 hotel_id
从 this page 看来,initSelection
不应该在 options.ajax
中,而应该在 options
中。我会尝试复制他们拥有的示例并根据您的需要进行编辑。或者更新到 4.0.0
,这似乎更容易。
我正在使用 Select2-rails '3.5.3,我可以使用远程数据进行搜索并保存它,问题是我如何恢复所选文本(例如,如果用户按下编辑) , 问题:使用 edit
加载表单时未触发 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
- source data = hotel table with field id, name
- 客户 table = 订单字段 hotel_id
从 this page 看来,initSelection
不应该在 options.ajax
中,而应该在 options
中。我会尝试复制他们拥有的示例并根据您的需要进行编辑。或者更新到 4.0.0
,这似乎更容易。