0

我在页面的 html 中有一些用于自动完成的 javascript,它工作正常,我将脚本移动到一个单独的 js 文件中,它破坏了我的代码。经过一些谷歌搜索,我找到了原因。

我一直在尝试更改我在 Stackoverflow 和其他网站上阅读的几篇文章之后的代码,但我似乎无法让代码正常工作。

希望一些专业的程序员可以帮助解决我的问题。

<input id="weatherSearch" data-request-url="@Url.Action("WeatherAutoComplete", "Weather")" name="q" title="Change location" type="text"/>

//****************************************

// Javascript code

//****************************************

function monkeyPatchAutocomplete() {
    var oldFn = $.ui.autocomplete.prototype._renderItem;
    $.ui.autocomplete.prototype._renderItem = function (ul, item) {
        var re = new RegExp("^" + this.term, "i");
        var t = item.label.replace(re, "<span style='color:black;font-size:11px;background-color:inherit;font-weight:bold;'>" + this.term + "</span>");
        return $("<li></li>")
            .data("item.autocomplete", item)
            .append("<a>" + t + "</a>")
            .appendTo(ul);
    };
}



$(function () {
    monkeyPatchAutocomplete();
    $('#weatherSearch').autocomplete({
        source: function (request, response) {
            var re = $.ui.autocomplete.escapeRegex(request.term);
            var matcher = new RegExp("^" + re, "i");
            $.ajax({
                url: $(this).data('request-url'),
                type: "Get",
                dataType: "json",
                delay: 300,
                minLength: 1,
                data: { searchText: request.term },
                success: function (data) {
                    response($.map(data, function (item) {
                        return { label: item.Location, value: item.Location }
                    }))
                }
            })
        }
    });
});

谢谢

乔治

4

0 回答 0