【发布时间】:2023-03-07 04:22:01
【问题描述】:
我正在尝试使用 Twitter Bootstrap typeahead (v2.3.2) 和 jQuery v1.8.3 从拥有 20k 用户的大型数据库表中搜索一个订阅用户,并使用多个连接和联合两个或一个以上数据库。
我知道 sugests 可以正常工作,但我只想通过按下提交按钮或回车来限制对服务器的 ajax 请求。
我的问题是如何仅在按下提交按钮或 Enter 时启动建议和搜索请求。
我的代码:
$('input[name="searchSubs"]').typeahead({
minLength: 2,
highlight: true,
hint: true,
source: function (query, process) {
var postData = {'query': query};
$.extend( postData, {'search_field': '2'} );
return $.post('search/ajax_search/', postData,
function (response) {
var data = new Array();
$.each(response, function(i, item) {
data.push(item.subs_id +'_'+ item.firstname + ' ' + item.lastname);
});
return process(data);
},
'JSON'
);
}
, highlighter: function(item) {
item = item.replace(new RegExp('(' + this.query + ')', 'ig'), function ($1, match) {
return '<strong>' + match + '</strong>'
})
var parts = item.split('_');
var subs_id = parts.shift();
var itm = ''
+ "<div class='typeahead_wrapper'>"
+ "<div class='typeahead_primary'>" + parts.join('_') + "</div>"
+ "<div class='typeahead_secondary'>ID: " + subs_id + "</div>"
+ "</div>";
return itm;
}
, updater: function(item) {
var parts = item.split('_');
var subs_id = parts.shift();
window.location.href = 'home/?subs_id='+subs_id;
return parts.join('_');
}
, matcher: function (item) {
return ~item.toLowerCase().indexOf(this.query.toLowerCase())
}
}
);
【问题讨论】:
-
您使用的是哪个版本的预输入?
-
我使用 bootstrap-typeahead.js v2.3.2
-
问题没有解决,我在等待任何想法
标签: jquery twitter-bootstrap twitter bootstrap-typeahead