Jquery自动完成不是一个功能

Posted

技术标签:

【中文标题】Jquery自动完成不是一个功能【英文标题】:Jquery autocomplete not a function 【发布时间】: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 文件不存在。我下载并包含它,现在它可以工作了。我像你想的那样错过了文件。如果您将此作为答案,请选择它。 【参考方案1】:

确保您有jquery-ui 的脚本标签

<script src="jquery-ui.js"></script>

【讨论】:

【参考方案2】:

我认为这里的问题是特定页面或项目上使用的层次结构中缺少文件。

检查这一点的最佳方法是使用 chrome 开发人员工具查看脚本是否出现在 Sources 选项卡中。

如果它没有出现,那么首先检查是否包含脚本。

【讨论】:

以上是关于Jquery自动完成不是一个功能的主要内容,如果未能解决你的问题,请参考以下文章

Jquery UI - 自动完成不是一个功能

jQuery自动完成不是功能控制台错误

自动完成“不是功能”

jquery 自动完成功能不适用于重音

自动完成 jQuery / PHP / MySQL 不返回结果

jQuery .val() 不适用于 jQueryUI 自动完成功能