我在页面的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 }
}))
}
})
}
});
});
由于
乔治