Javascript 选择2:从远程服务填充数据
我在表单中使用了两个select2,如果我选择了第一个select2 它将从服务器加载数据,然后从 收到的数据。问题是它没有填充second select2这里有人知道如何解决它吗 我尝试了以下代码,但没有成功:(Javascript 选择2:从远程服务填充数据,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,我在表单中使用了两个select2,如果我选择了第一个select2 它将从服务器加载数据,然后从 收到的数据。问题是它没有填充second select2这里有人知道如何解决它吗 我尝试了以下代码,但没有成功:( 在收到第一个select2的ajax调用的数据结果后,您需要重新初始化第二个select2元素 firstSelection = $('#first_id').select2( allowClear: false ) secondSelection = $('#second_id')
在收到第一个select2的ajax调用的数据结果后,您需要重新初始化第二个select2元素
firstSelection = $('#first_id').select2( allowClear: false )
secondSelection = $('#second_id')
firstSelection.on('select2-selecting', (e)->
if e.val
$.get(
"/api/v1/posts/#{e.val}",
(data)-> (
console.log data
newOptions = data
select = secondSelection
if select.prop
options = select.prop("options")
else
options = select.attr("options")
$("option", select).remove()
$.each newOptions, (val, text) ->
options[options.length] = new Option(text, val)
secondSelection.select2()
)
)
)
基本机制是从数据中创建选项
s,将它们添加到secondSelection
元素中,然后在该元素上再次初始化select2
firstSelection = $('#first_id').select2( allowClear: false )
secondSelection = $('#second_id')
firstSelection.on('select2-selecting', (e)->
if e.val
$.get(
"/api/v1/posts/#{e.val}",
(data)-> (
console.log data
newOptions = data
select = secondSelection
if select.prop
options = select.prop("options")
else
options = select.attr("options")
$("option", select).remove()
$.each newOptions, (val, text) ->
options[options.length] = new Option(text, val)
secondSelection.select2()
)
)
)