jQuery自动完成 - 未捕获TypeError:undefined不是函数

时间:2015-01-02 01:15:27

标签: javascript jquery jquery-ui autocomplete asp.net-mvc-5

我正在尝试在我的搜索文本框中添加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>

提前致谢。

1 个答案:

答案 0 :(得分:3)

什么是undefined显然是.autocomplete jQuery函数。请注意,在你的问题的“正在加载的脚本”部分中,jQuery UI完全缺失。

你正确地将它包含在你的包中,如"~/Scripts/jquery-ui-{version}.js"所以唯一可能的解释是该路由中缺少jQuery UI脚本文件(或者你正在渲染worng包)您的布局或视图Razor代码)。