jQuery UI自动填充不填充文本的选择列表
问题描述:
我正在使用jQuery UI自动填充并使其部分工作。当找不到结果时,它会显示我的“未找到结果”。消息没有问题,但是当找到结果时,它仅显示每个选项的空白框,根本没有文本。jQuery UI自动填充不填充文本的选择列表
我已经调试并没有什么开发者控制台显示,我可以深入到我的ASP.Net代码,看看有效数据得到拉动。我在这里错过了什么?
的jQuery:
$("#ProjectSearchBox").autocomplete(
{
minLength: 3,
source: function(request, response)
{
$.ajax(
{
cache: false,
type: "GET",
url: "/Timesheet/ProjectCodes?searchTearm=" + request.term,
success: function(data)
{
response(data);
},
error: function(xhr)
{
alert("Error getting project list, please try again later.");
}
});
}
});
HTML:
<li>
<label for="ProjectSearchBox">Search Project:</label>
<input type="text" id="ProjectSearchBox" name="ProjectSearchBox" list="ProjectList" />
</li>
ASP.Net代码:
var projects = db.ProjectCodes
.Where(project => project.Code.ToLower().Contains(searchTearm.ToLower()) || project.Description.ToLower().Contains(searchTearm.ToLower()))
.Select(project => new
{
projectInfo = string.Concat(project.Code, " | ", project.Description)
}).ToList();
if (projects.Count == 0)
{
return Json(new { responseText = "No match found." }, JsonRequestBehavior.AllowGet);
}
else
{
return Json(projects, JsonRequestBehavior.AllowGet);
}
答
而不是返回的数组或字符串,您的控制器被返回对象的数组与一个名为“projectInfo”的字符串属性。自动完成功能不知道如何解析这个没有进一步的指示。更改选择线您的服务器代码为:
.Select(project => string.Concat(project.Code, " | ", project.Description))
这是问题,谢谢 – Matthew