我是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?。尝试在该问题上实施代码,但无济于事。
搜索框的当前结果是这样的(格式 [用户ID] - [名称] ):
25-Dennis Ferrell
我不想在结果中显示ID,只显示名称。 ID已添加到其中,因为我想使用 profile.aspx的ID?id = 25 。
** 编辑1 **
我读到{j}用户界面formatItem
和formatResult
都弃用了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-
。
这是我更新的代码:
25-Dennis Ferrell
任何人都可以帮我解决格式问题吗?只想从25
中移除success: function (data) {
response($.map(data.d, function (item) {
return item.split("-")[1];
}));
}
,然后使用Dennis Ferrell
通过ID重定向用户。
** 编辑2 **
我试过这样做:
25
结果为select:
,但{{1}}无法传递到{{1}}函数(重定向用户所需)。
答案 0 :(得分:2)
好的,所以我把它分开了。搜索框中的结果将显示Dennis Ferrell
,而select:
函数的ID值为25
。我认为不是最好的答案,但是,这里是{的代码{1}}功能:
success:
success: function (data) {
response($.map(data.d, function (item) {
return {
id: item.split("-")[0],
value: item.split("-")[1],
}
}));
}
函数的代码:
select:
答案 1 :(得分:1)
你应该在select函数中从ui.item.id获取id。
location.href = "profile.aspx?id=" + ui.item.id
希望有所帮助
答案 2 :(得分:1)
你可以使用
window.location = "page.aspx?userid="+ui.item.id;