0

我在我的 MVC3 Web 项目中使用了 ui jquery 自动完成功能,并将 jquery 保存在外部 js 文件中,并将其包含在网页中,但它不起作用。

我在 js 文件中使用以下代码进行 ui jquery 自动完成:

$(function () {
    $("#ReportsTo_FullName").autocomplete({
        source: function (request, response) {
            var linkPath = "@Html.Raw(Url.Action("AutocompleteSuggestions", "Employee", new { @term = "Term", @moduleName="ModuleName"}))";
            linkPath = linkPath.replace("Term", request.term);
            linkPath = linkPath.replace("ModuleName", "Employee");

            $.post(linkPath, function (data) {
                response($.map(data, function (item) {
                    return { label: item.FullName, value: item.Id }
                }
               ));
            })
            $.error(function (xhr, ajaxOptions, thrownError) { alert(thrownError); })
        },
        minLength: 1,
        focus: function (event, ui) {
            $("#ReportsTo_FullName").val(ui.item.label);
            return false;
        },
        select: function (event, ui) {
            if (ui.item) {
                $("#ReportsTo_FullName").css('border', '');
                $("#ReportsTo_FullName").val(ui.item.label);
                $("#ReportsToId").val(ui.item.value);
                return false;
            }
        },
        change: function (event, ui) {
            if (ui.item == null) {
                $("#ReportsTo_FullName").css({ 'border': '1px solid #ff0000' });
                $("#ReportsToId").val(null);
            }
        }
    });
});

但它无法执行并且它没有显示自动完成。

上面的 jquery 有什么问题?

如何解决这个问题?

4

1 回答 1

2

你不能使用这个:

@Html.Raw(Url.Action("AutocompleteSuggestions", "Employee", new { @term = "Term", @moduleName="ModuleName"}))

在 js 文件中,这是服务器代码。在页面上创建隐藏字段,然后您才能获取此数据。

于 2012-10-05T07:40:50.787 回答