提问者:小点点

Javascript-在焦点文本字段上自动完成


在编译完另一个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);
    },
});

共1个答案

匿名用户

您可能需要传递选项minLenght,如下所示:

$( ".selector" ).autocomplete({
  minLength: 0 // this one!
});

默认情况下为1,但我相信0对您有用。

我还认为,on focus不应该调用服务器,因为当您调用服务器时,它会毫无限制地查找*(所有内容),并且可能是一个糟糕的用户体验。 祝你好运!