JQuery Select事件不起作用

时间:2017-05-26 15:21:10

标签: jquery ajax

我有一个Jquery函数,当您键入(从活动目录中获取)时会显示一个下拉列表,并且当您单击其中一个下拉选项时,我希望它重定向到新页面。一切都有效,除了选择事件,我的错误的任何想法?

$(document).ready(function () {
    $("#searchName").autocomplete({
        source: function (request, response) {
            $("#loadingImg").show();
            $.ajax({
                url: "/Home/SearchUserWhileTyping",
                type: "GET",
                data: { name: $("#searchName").val() },
                contentType: "application/json;charset=utf-8",
                dataType: "json",
                success: function (data) {
                    response($.map(data, function (item) {
                        //alert(item.distinguishedName);
                        return {
                            label: item.displayName
                        }
                    }));
                },
                complete: function () {
                    $("#loadingImg").hide();
                },
                select: function (event, ui) {
                    alert(ui.item.distinguishedName);
                    var link = '@Url.Action("ShowUserInfo", "Home", new { distinguishedName = "value"})';
                    link = link.replace("value", ui.item.distinguishedName);
                    window.location.href = link;
                    //window.location.href = Url.ActionLink("Test", "ShowUserInfo", "Home", new {distinguishedName = ui.item.distinguishedName});
                }
            });
        },
        minLength: 4
    })
});

此外,distinguishedName和displayName是我的模型类ADProperties中的属性,其中包含Active Directory用户的属性。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

最后对我有用的是使用变量来检索我想要的值。还做了Taplar建议的修复:

            $(document).ready(function () {
            var distName = [];
            var dispName = [];
            $("#searchName").autocomplete({
                source: function (request, response) {
                    $("#loadingImg").show();
                    $.ajax({
                        url: "/Home/SearchUserWhileTyping",
                        type: "GET",
                        data: { name: $("#searchName").val() },
                        contentType: "application/json;charset=utf-8",
                        dataType: "json",
                        success: function (data) {
                            response($.map(data, function (item) {
                                distName[item.displayName] = item.distinguishedName;
                                //distName.push(item.distinguishedName);
                                dispName.push(item.displayName);
                                return {
                                    label: item.displayName
                                }
                            }));
                        },
                        complete: function () {
                            $("#loadingImg").hide();
                        }
                    });
                },
                select: function (event, ui) {
                    var res;
                    var index = 0;
                    alert(ui.item.label);
                    $.each(dispName, function (key, value) {
                        if (ui.item.label == value)
                            res = distName[value];
                    });

                    //alert(disName.distinguishedName);
                    var link = '@Url.Action("ShowUserInfo", "Home", new { distinguishedName = "value"})';
                    link = link.replace("value", res);
                    window.location.href = link;
                    //window.location.href = Url.ActionLink("Test", "ShowUserInfo", "Home", new {distinguishedName = ui.item.distinguishedName});
                },
                minLength: 4
            })
        });