我在www.swimstats.net上集成了以下自动完成功能:
$("#athleteName1").autocomplete({
minLength: 3,
delay: 300,
source: function (request, response) {
$.ajax({
type: "POST",
url: "/query_athletes",
data: { first: $('#athleteName1').val() },
success: response,
});
}
}).focus(function () {
console.log('Populate');
});
我正在寻找一种解决方案,当输入字段#athleteName1
获得焦点时,可以为用户提供多达5个先前选择的值。 Aspired "OnFocus" Behavior 。这样做的好处是,用户不必再次搜索以前搜索过的运动员。
但是,一旦用户开始输入,自动完成功能应再次接管,而先前选择的值将消失。
有什么想法如何构建一个好的,干净的解决方案来实现这一目标吗?
答案 0 :(得分:0)
不确定这是否是最优雅的方法,但确实可以做到:
$("#athleteName1").autocomplete({
minLength: 0,
delay: 300,
source: function (request, response) {
if ($( "#athleteName1" ).val().length == 0) {
response(['banana','apple', 'orange']);
return;
}
$.ajax({
type: "POST",
url: "/query_athletes",
data: { first: $('#athleteName1').val() },
success: response,
});
},
}).focus(function () {
if ($( "#athleteName1" ).val().length == 0) {
$( "#athleteName1" ).autocomplete("search");
return;
}
});