自动完成 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);
}
那应该没问题。
我正在从 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);
}
那应该没问题。