Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择2:从远程服务填充数据_Javascript_Jquery_Jquery Select2 - Fatal编程技术网

Javascript 选择2:从远程服务填充数据

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,如果我选择了第一个select2 它将从服务器加载数据,然后从 收到的数据。问题是它没有填充second select2这里有人知道如何解决它吗

我尝试了以下代码,但没有成功:(


在收到第一个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()
      )
    )
)