jQuery UI 自动完成未使用文本填充 select 列表
jQuery UI autocompleate not populating select list with text
我正在使用 jQuery UI 自动完成并使其部分工作。当没有找到结果时,它会毫无问题地显示我的 "No results found." 消息,但是当找到结果时,它只会为每个选项显示一个空框,根本没有文本。
我已经调试,但开发人员控制台中没有显示任何内容,我可以深入研究我的 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 行更改为:
.Select(project => string.Concat(project.Code, " | ", project.Description))
我正在使用 jQuery UI 自动完成并使其部分工作。当没有找到结果时,它会毫无问题地显示我的 "No results found." 消息,但是当找到结果时,它只会为每个选项显示一个空框,根本没有文本。
我已经调试,但开发人员控制台中没有显示任何内容,我可以深入研究我的 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 行更改为:
.Select(project => string.Concat(project.Code, " | ", project.Description))