3

我正在尝试实现 jquery 自动完成插件。我已经启动并运行它,但有些东西不能正常工作。

基本上我有一个员工的自动完成列表。该列表是使用 VB.NET 处理程序(.ashx 文件)从 sql 数据库中的表(employee_names 和employee_ID)生成的。数据格式为:employee_name-employee_ID。到目前为止一切顺利,所有员工都列在自动完成中。

问题是当他们从自动完成中选择员工时,我不知道如何将用户重定向到某个页面(例如employee_profile.aspx)。

这是我的重定向代码,但它不能正常工作:

$('#fname2').result(function(event, data, formatted) {
        location.href = "employee_profile.aspx?id=" + data
});

例如; 用户选择它会将用户重定向到employee_profile.aspx?id=name of employee-id of employee(例如:employee_profile.aspx?id=John Doe-91210)而不是employee_profile.aspx?id=91210。

我知道我可以删除employee_ID:

formatResult: function(data, value) {
   return value.split("-")[1];
   }   
});

但我不知道如何将该employee_ID 传递给重定向页面..

这是我的整个代码:

$().ready(function() {

        $("#fname2").autocomplete("AutocompleteData.ashx", {
            minChars: 3,
            selectFirst: false,
            formatItem: function(data, i, n, value) {
            return value.split("-")[0];
            },
            //Not used, just for splitting employee_ID
            //formatResult: function(data, value) {
            //   return value.split("-")[1];
            //}  
            });

            $('#fname2').result(function(event, data, formatted) {
            location.href = "employee_profile.aspx?id=" + data
            });

    });

我知道我已经很接近了,应该很简单,但是有人可以帮我吗?

编辑

这为我解决了这个问题:formatted.split 而不是 data.split。代码:

$('#fname3').result(function(event, data, formatted) {
            var employeeId = formatted.split("-")[1];
            location.href = "employee_profile.aspx?id=" + employeeId
});
4

2 回答 2

5

你是说它正在成功重定向,而不是去......

employee_profile.aspx?id=91210

它会...

employee_profile.aspx?id=John Doe-91210 ??

如果是这种情况......那么你可以简单地在你的结果函数中执行你的条带化......

$('#fname2').result(function(event, data, formatted) {
        var employeeId = data.split("-")[1];
        location.href = "employee_profile.aspx?id=" + employeeId
 });
于 2010-03-23T21:50:16.590 回答
0

我认为location.href应该是window.location

于 2010-03-23T21:51:20.647 回答