【发布时间】:2012-02-03 08:37:49
【问题描述】:
我是 jQuery 和 Stack Overflow 的新手。我正在做我的学校项目,并且已经实现了基本的自动完成搜索以在我小组的 ASP.NET Web 应用程序上工作。我遵循了本指南:http://www.magic-dev.com/autocomplete-textbox-aspnet-database.htm。
我可以搜索名称(从数据库中获取),但我想要做的是允许用户从结果中选择名称(单击名称时),并将它们重定向到个人资料页面(例如profile.aspx?id=25)。
我在 Stack Overflow 上进行了搜索,发现了 Redirecting users on select from autocomplete?。尝试实现该问题的代码,但无济于事。
搜索框的当前结果是这样的(格式[user's ID]-[Name]):
25-Dennis Ferrell
我不想在结果中显示 ID,而只显示名称。该 ID 已添加到其中,因为我想将该 ID 用于 profile.aspx?id=25。
** 编辑 1 **
我读到 formatItem 和 formatResult 都从 jQuery UI (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 重定向用户。
** 编辑 2 **
我试过这样做:
success: function (data) {
response($.map(data.d, function (item) {
return item.split("-")[1];
}));
}
结果将是Dennis Ferrell,但25 不能传递给select: 函数(重定向用户所需要的)。
【问题讨论】:
-
什么不完全有效?如果
ui.item.value是你的方式,我很确定你的split代码是正确的。 -
@AndrewWhitaker 我已经更新了问题(参见EDIT 2)。
-
欢迎来到 Stack Overflow!很高兴看到你终于在这里发帖了 :) 你可以在一段时间后单击左侧的空心复选标记来标记自己的答案已被接受,而不是在标题中添加“已解决”——这就是我们在此处指示已解决问题的方式。
-
@BoltClock 好的。谢谢!
标签: jquery asp.net jquery-autocomplete