我有一组数据,其中要求自动完成功能在写入3个字符后显示结果。但是,有一个数据只有两个字符长。(' LG')。
所以我的问题是;
有没有办法保留:minLength:3
同时为键入某些字符创建例外,例如(' LG')?
我一直试图在成功参数中对结果进行硬编码,如下所示,但它没有按预期工作。我希望我能走上正轨吗?
这是一段代码片段,到目前为止还有完整的代码;
success: function (LG, resp) {
if (LG.length === 2) {
LG.push({
label: 'LG',
value: 'LG',
});
}
response(LG);
var results = [];
$.each(resp.Q0, function(k, v) {
if (v.indexOf(request.term.toUpperCase()) >= 0) {
results.push(v);
}
});
response(results);
}
});
},
答案 0 :(得分:0)
我认为一个选项是修改minChars并修改成功函数。 在这里,我给你添加代码,告诉我是否适合你的问题。
$(document).ready(function() {
setTimeout(function() {
$('#_Q0').autocomplete({
source: function(request, response) {
$.ajax({
url: "brands.json",
dataType: "JSON",
type: "GET",
success: function (resp) {
var results = [];
$.each(resp.Q0, function(k, v) {
if (request.term.length >= 3 && v.indexOf(request.term.toUpperCase()) >= 0) {
results.push(v);
}
if (request.term.length == 2 && request.term.toUpperCase() == v) {
results.push(v);
}
});
response(results);
}
});
},
autoFocus: true,
minLength: 2,
response: function(event, ui) {
if (!ui.content.length) {
var noResult = {
value: "",
label: "No results found"
};
ui.content.push(noResult);
}
}
});
var render = $('#_Q0').autocomplete('instance')._renderMenu;
$('#_Q0').autocomplete('instance')._renderMenu = function(ul, items) {
items.push({
label: 'AUTRE MARQUE',
value: 'AUTRE MARQUE',
last: true
});
render.call(this, ul, items);
};
}, 100);
});
我不喜欢的一点是我必须将minChars硬编码到成功函数中,也许我们可以找到从属性“minChars”恢复值的方法