我是jQuery和堆栈溢出的新手。我正在做我的学校项目,并实施了基本的自动完成搜索,以处理我的小组的ASP.NET Web应用程序。我遵循这个指南:http://www.magic-dev.com/autocomplete-textbox-aspnet-database.htm。格式和重定向用户(w/jQuery UI自动完成)
我可以搜索名称(取自数据库),但我想要做的是允许用户从结果中选择名称(单击名称),并将它们重定向到配置文件页面(例如profile.aspx?id = 25)。
我在Stack Overflow上搜索过并且遇到了Redirecting users on select from autocomplete?。试图执行这个问题的代码,但无济于事。
目前结果的搜索框是这样的(格式[用户ID] - [名]):
25-Dennis Ferrell
我不希望显示在结果的ID,但只显示名字。该ID已添加到它中,因为我想使用ID为profile.aspx?id = 25。
** EDIT 1 **
我读formatItem
和formatResult
都由jQuery用户界面(http://www.learningjquery.com/2010/06/autocomplete-migration-guide)折旧。所以现在,我得到的代码重定向用户点击,但格式仍然是25-Dennis Ferrell
。
这里是我更新的代码:
$('#<%= searchMenu.ClientID %>').autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "PredictiveSearch.asmx/GetAllNames",
data: "{'nameKeyword':'" + request.term + "'}",
dataType: "json",
async: true,
success: function (data) {
response(data.d);
}
});
},
select: function (event, data) {
window.location = "profile.aspx?id=" + data.item.value.split("-")[0];
}
});
谁能帮助我的格式?只是想从25-Dennis Ferrell
中删除25-
,并使用25
通过ID重定向用户。
** EDIT 2 **
我试着这样做:
success: function (data) {
response($.map(data.d, function (item) {
return item.split("-")[1];
}));
}
结果将是Dennis Ferrell
,但25
不能传递到select:
功能(这是需要用于重定向用户)。
什么是不工作的到底是什么?我相当肯定你的'split'代码是正确的,如果'ui.item.value'是你的方式。 – 2012-02-03 15:15:51
@AndrewWhitaker我已经更新了这个问题(参见**编辑2 **)。 – yanyi 2012-02-03 16:22:43
欢迎来到Stack Overflow!很高兴看到你最终在这里发布:)与其向您的标题添加“已解决”,您可以通过单击左侧的空白复选标记标记您在某段时间之后接受的答案 - 这就是我们在此处表明已解决的问题的方式。 – BoltClock 2012-02-04 05:06:33