ページの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 }
}))
}
})
}
});
});
ありがとう
ジョージ