首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC4 - JQuery AutoComplete - .autocomplete不是函数

MVC4 - JQuery AutoComplete - .autocomplete不是函数
EN

Stack Overflow用户
提问于 2012-06-11 00:57:59
回答 4查看 8.4K关注 0票数 2

我之前遗漏了一些东西,但当我尝试将自动完成添加到文本框中时,我总是收到这样的消息:.autocomplete不是一个函数

_Layout (仅head部分):

代码语言:javascript
复制
<head>
 <meta charset="utf-8" />
 <title>@ViewBag.Title - My ASP.NET MVC Application</title>
 <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
 <meta name="viewport" content="width=device-width" />
 <link href="../../Content/themes/base/jquery.ui.all.css" rel="stylesheet" type="text/css" />
 <script src="../../Scripts/jquery-1.6.2.min.js" type="text/javascript"></script>
 <script src="../../Scripts/jquery-ui-1.8.11.js" type="text/javascript"></script>
 @Styles.Render("~/Content/themes/base/css", "~/Content/css")
 @Scripts.Render("~/bundles/modernizr")

索引:

代码语言:javascript
复制
    <script type="text/javascript">
$(function () {
    $("#searchTerm").autocomplete({
       source: "/Search/AutocompleteSuggestions",
       minLength: 3,
       select: function (event, ui) {
             if (ui.item) {
                $("#searchTerm").val(ui.item.value);
                $("form").submit();
             }
       }
      });
});

代码语言:javascript
复制
@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl }))'
{
<input id="searchTerm" name="searchTerm" type="text" />
<input type="submit" value="Go" />
}

我非常确定Jquery插件没有正确加载,但我看不出原因!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-16 03:30:35

在挠头一个小时左右之后,我发现了问题所在,所以我这样做了:

  1. 您必须将javascript添加到@

脚本{}部分

  1. 我必须包括以下包:@Scripts.Render("~/bundles/jqueryval") javascript

MVC4附带了正确的JQuery文件,并且默认配置已经包含了必要的包。

希望这对其他人有帮助。

票数 4
EN

Stack Overflow用户

发布于 2012-06-11 01:01:37

您似乎没有包含定义autocompete方法的jquery-ui-1.8.11.js脚本。您只包含了jquery-1.6.2.min.js,这是必需的,但还不够。另外,我建议您使用捆绑包将所需的脚本和样式组合并缩小到单个文件中,这样可以减少带宽并缩短页面加载时间:

代码语言:javascript
复制
<head>
    <meta charset="utf-8" />
    <title>@ViewBag.Title - My ASP.NET MVC Application</title>
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    <link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
    <link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/themes/base/css")" rel="stylesheet" type="text/css" />
    <script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>
    <meta name="viewport" content="width=device-width" />
</head>
票数 1
EN

Stack Overflow用户

发布于 2012-06-11 01:16:12

我非常确定Jquery插件没有正确加载

你怎么知道jquery插件没有正确加载?首先,您应该停止通过直接组合引用脚本/样式和使用System.Web.Optimization帮助器(@Scripts@Styles..)来搞乱事情。

使用其中任何一种方法。我建议您首先使用Url.Content直接加载所需的css和脚本,并查看是否一切正常,如果是,则将它们完全替换为@Scripts@Styles

要了解有关捆绑/缩减的更多信息,请参阅此链接

http://ofps.oreilly.com/titles/9781449320317/ch_ClientOptimization.html#_putting_asp_net_mvc_to_work

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10970513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档