【发布时间】:2016-02-25 23:38:49
【问题描述】:
我知道有几个关于此错误的问题帖子,但我找不到任何适合我情况的答案。我在 ASP.NET MVC 中,我正在从我的合作伙伴那里复制一个自动完成功能。它可以在他的计算机上运行,但是当我尝试将其用于不同的视图时,控制台中出现错误:
Uncaught TypeError: $(...).autocomplete is not a function
这是文本框和脚本:
<div id="SearchUser">
<label>
Search for user:
<input type="text" id="usersearch" />
<input type="button" onclick="addUser()" value="Add" />
</label>
</div>
--------------------
//Auto search for users
$(function () {
$('#usersearch').autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("GetUserNames")',
data: { pre: request.term },
dataType: "json",
type: "GET",
success: function (data) {
response($.map(data, function (item) {
return { label: item.Text, value: item.Text };
}))
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
}
});
});
同样的代码在他的机器上工作,但不是我的。我检查了 BundleConfig,我确实有
"~/Scripts/jquery-ui.js",
包括在内,所以我不确定为什么会出现此错误。
【问题讨论】:
-
打开 chrome 开发者工具并检查 jquery-ui 脚本是否显示在源选项卡中。我的猜测是或者缺少 jquery 引用。
-
这是回家的相对路径。你确定它在那里存在吗?也许它应该相对于当前目录?
.而不是~? -
@Sushanth-- jquery-ui 是唯一一个没有出现的脚本,除了这个之外,是否有其他脚本都存在的原因?
-
@Reeggiie 检查文件层次结构。不看文件夹结构,光看路径很难说。
-
@Sushanth-- 你是对的,我检查了文件层次结构并且 jquery-ui.js 文件不存在。我下载并包含它,现在它可以工作了。我像你想的那样错过了文件。如果您将此作为答案,请选择它。
标签: javascript jquery asp.net jquery-ui autocomplete