自动完成 select 项中的未捕获错误

Uncaught Error in autocomplete select item

我正在从 javascript 自动完成中获取自动完成项目列表,但是当我 select 该自动完成项目列表当时显示错误,即 Uncaught TypeError: n.item 未定义

这是我的代码,

<div class="form-group">
    <div class="col-md-3">
        <nop-label asp-for="Name" />
    </div>
    <div class="col-md-9">                    
        @Html.TextBoxFor(model => Model.Name, new { @class = "form-control" })
        @Html.HiddenFor(model => Model.Name)
    </div>
</div>


$(document).ready(function () {
    $("#Name").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: '@Url.Action("AutoComplete", "Product")',
                datatype: "json",
                data: {
                    term: request.term
                },
                success: function (data) {
                    response($.map(data, function (val) {
                        return {
                            label: val.Name,
                            value: val.Name
                        }
                    }))
                }
            })
        },
        select: function (ui) {
            $("#Name").val(ui.item.Name);
        }
    });
});

这里是控制器

public JsonResult AutoComplete(string term = "")
{
    var objCustomerlist = (from product in _productMasterRepository.Table
                           where product.Name.StartsWith(term)
                           select new
                           {
                               Name = product.Name,
                               ID = product.Name
                           }).ToList();
    return Json(objCustomerlist);
}

您的 select 签名不正确:

select: function (ui) {
        $("#Name").val(ui.item.Name);
    }

改成:

select: function (event, ui) {
         $("#Name").val(ui.item.Name);
     }

那应该没问题。