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