我有一个用于搜索的Select2输入(远程数据)。 目前,它的工作原理如下:
当用户输入1个字符时,我们会自动触发搜索
现在,有趣的部分:
我需要添加以下行为:
当用户专注于此输入并按下Enter按钮时,我需要触发一个字符的搜索' *'但是没有在输入中实际写入该字符。
它应该只发送带有字符*的搜索请求,但输入应保持为空。
是否可以在不搞乱Select2代码的情况下实现这一目标?
我的代码:
$("#account").select2({
language: "en",
ajax: {
url: window.urls.ajax_account_search,
dataType: 'json',
delay: 500,
data: function(params){
console.log(params);
return {
query: params.term,
page: params.page
}
},
processResults: function(data, params){
return {
results: data.items
}
},
cache: true
},
escapeMarkup: function(m) { return m; },
templateResult: formatSearchResult,
templateSelection: formatSearchSelection,
minimumInputLength: 1
});
答案 0 :(得分:0)
您可以在没有搜索字词时发送*
,而不是在输入时触发搜索(发送*
)。这也意味着放弃minimumInputLength
要求,但这似乎符合您的要求。
$("#account").select2({
language: "en",
ajax: {
url: window.urls.ajax_account_search,
dataType: 'json',
delay: 500,
data: function(params){
return {
query: params.term || '*', // send * if there is no term
page: params.page
}
},
processResults: function(data, params){
return {
results: data.items
}
},
cache: true
},
escapeMarkup: function(m) { return m; },
templateResult: formatSearchResult,
templateSelection: formatSearchSelection
});