Javascript 在select2中使用静态值,然后执行ajax搜索

Javascript 在select2中使用静态值,然后执行ajax搜索,javascript,ajax,select2,Javascript,Ajax,Select2,我使用select2 4.0.2提供一个执行AJAX查找的选择框。但我想做的是,在开始键入之前,像普通一样显示标记中的选项,然后在查询字符串为非空时,通过AJAX转到服务器进行更多搜索 基本上,问题是AJAX查询有点慢,但我可以在页面加载时预加载第一个结果。我不必将其作为s加载,我可以将它们填充到JSON数组或其他东西中。这就是我最后要做的。在select2ajax选项中,首先,在data函数中,我隐藏了选项中的值和文本,因为我在transport函数中没有访问它的权限。抱歉,这是咖啡脚本中的内

我使用select2 4.0.2提供一个执行AJAX查找的选择框。但我想做的是,在开始键入之前,像普通一样显示标记中的选项,然后在查询字符串为非空时,通过AJAX转到服务器进行更多搜索


基本上,问题是AJAX查询有点慢,但我可以在页面加载时预加载第一个结果。我不必将其作为s加载,我可以将它们填充到JSON数组或其他东西中。

这就是我最后要做的。在select2ajax选项中,首先,在data函数中,我隐藏了选项中的值和文本,因为我在transport函数中没有访问它的权限。抱歉,这是咖啡脚本中的内容:

data: (params) ->
  ret.q = params.term
  ret.page = params.page
  o = ({
    id: $(e).val(),
    display_name: $(e).text()
  } for e, index in this.children() when index > 0)
  ret.options = o
  return JSON.stringify(ret)
然后我声明一个传输函数,该函数决定是进行ajax调用还是使用本地数据:

transport: (params, success, failure) ->
   # Get query string
   params_data = $.parseJSON(params.data)
   q = params_data.q
   if !q || q.length < 3
     q_reg = new RegExp(q, "i")
     data =
       incomplete_results: false
       items: params_data.options.filter (element) ->
         q_reg.test(element.display_name)
     success(data)
   else
     $.ajax(params).done(success).fail(failure)

您不能键入普通选择。在事件中使用并添加.select2。我知道您不能键入普通的select,我想问的是如何使select2像普通的select一样工作,直到您开始键入为止。