在编译完另一个textfield之后,我有一段自动完成的代码。 问题是,这个自动完成只有在插入一个字母后才工作,我想显示自动完成时,文本字段是焦点。 我也试着放入事件焦点,但是它不做任何对服务器的调用。 当用户只需单击/聚焦文本字段时,如何显示自动完成结果?
$("#localitaTextBox").autocomplete
({
source: function (request, responce) {
$.ajax({
url: '@Url.Action("GetAllLocalitaJson", "Spedizione")',
method: "post",
contentType: "application/json;charset=utf-8",
data: JSON.stringify({ localita: request.term, cap: $("#capTextBox").val() }),
dataType: 'json',
success: function (data) {
responce($.map(data.Result, function (item)
{
return {
label: item.Localita + ", " + item.CAP,
value: item.Localita,
id: item.CAP,
};
}))
},
error: function (err) {
alert(err);
}
});
},
select: function (e, ui)
{
$("#capTextBox").val(ui.item.id);
compileProvCode();
code = compileStatoCode();
// compileNation(code);
},
});
您可能需要传递选项minLenght,如下所示:
$( ".selector" ).autocomplete({
minLength: 0 // this one!
});
默认情况下为1,但我相信0对您有用。
我还认为,on focus不应该调用服务器,因为当您调用服务器时,它会毫无限制地查找*(所有内容),并且可能是一个糟糕的用户体验。 祝你好运!