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