我正在尝试创建一个自动完成功能,当由于结果集的大小而输入少于3个字符时不会触发搜索。但是,有些名称实际上只有1或2个字母的名字和姓氏。
解决方案是允许用户点击输入中的放大镜进行提交,或者“强制执行”带有1或2个字符值的查询。
这是我在的地方: HTML:
<input id="mainSearch" class="ui-front" name="mainSearch" type="text" data-role="autocomplete" placeholder="Recognize a UPSer">
<a href="#" class="bgbutton"></a>
jquery的:
$('#mainSearch').autocomplete({
appendTo: ".inputWrapper",
minLength: 3,
source: function (request, response) {
var customer = new Array();
$.ajax({
async: false,
cache: false,
type: "POST",
url: "//database//EmployeeDirectory/",
data: { "filterText": request.term },
error: function (data) { console.log('Error!'); },
success: function (data) {
for (var i = 0; i < data.length ; i++) {
customer[i] = {
label: data[i].FullName,
Id: data[i].UserID
};
}
}
});
response(customer);
}
});
$('.bgbutton').on('click', function () {
$('#mainSearch').autocomplete('option', 'minLength', 0);
$('#mainSearch').autocomplete('search', '');
});
这首先尝试一下。但是一旦输入了2个字符,单击提交按钮,然后将minLength设置为0以用于所有自动完成功能。退回到一个字符将进行完整查询。
两个自动完成功能如何具有独立的minLengths?
答案 0 :(得分:1)
如果没有看到您的所有代码,很难确定。但是,如果您在按钮点击事件结束时立即将minLength重置为3,会发生什么?
$('.bgbutton').on('click', function () {
$('#mainSearch').autocomplete('option', 'minLength', 0);
$('#mainSearch').autocomplete('search', '');
$('#mainSearch').autocomplete('option', 'minLength', 3);
});