我正在尝试在我的搜索文本框中添加jquery自动完成功能,但由于某种原因我无法让它工作。看起来我已经加载了所有必要的jquery,版本没有差异。 我已尝试过每一个(至少我发现的那个)建议的解决方案,但它们都没有用。
我的HTML:
<input type="search" name="searchTerm"
data-test-autocomplete="@Url.Action("AutoComplete")" />
我的js:
$(function() {
var createAutoComplete = function() {
var $input = $(this);
var options = {
source: $input.attr("data-test-autocomplete")
};
$input.autocomplete(options);
};
$("input[data-test-autocomplete]").each(createAutoComplete);
});
在正文末尾的_Layout.cshtml中调用bundle:
bundles.Add(new ScriptBundle("~/bundles/test").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery-ui-{version}.js",
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*",
"~/Scripts/test.js"));
正在加载的脚本:
<script src="/Scripts/jquery-1.10.2.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="/Scripts/test.js"></script>
<script src="/Scripts/bootstrap.js"></script>
<script src="/Scripts/respond.js"></script>
提前致谢。
答案 0 :(得分:3)
什么是undefined显然是.autocomplete
jQuery函数。请注意,在你的问题的“正在加载的脚本”部分中,jQuery UI完全缺失。
你正确地将它包含在你的包中,如"~/Scripts/jquery-ui-{version}.js"
所以唯一可能的解释是该路由中缺少jQuery UI脚本文件(或者你正在渲染worng包)您的布局或视图Razor代码)。