這就是我最終做的。在select2 ajax選項中,首先,在數據函數中,我隱藏了選項中的值和文本(因爲我無法在傳輸函數中訪問它)。很抱歉,這是在CoffeeScript中:
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)
你不能輸入一個正常的選擇。使用''並在Event上添加'.select2()'。 – PHPglue
我知道你不能輸入一個正常的選擇,我問如何讓select2像一個正常的選擇,直到你開始輸入。 –