$(“#Name”)。自动完成不是一个功能

时间:2011-06-22 14:48:14

标签: jquery asp.net-mvc-3 razor

当我运行此页面时,我在firebug中看到错误

<script type="text/javascript">
$(document).ready(function () {
var url = '/Tag/TagName';
$('#Name').autocomplete(url, {
minChars: 1,
multiple: true,
formatResult: function (row) {
return row[0].replace(/(<.+?>)/gi, '');
}
}).result(function (event, data, formatted) {
alert(!data ? "No match!" : "Selected: " + formatted);
});
})
</script> 

错误是:

$("#Name").autocomplete is not a function 

我也在这份文件中

  <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
    <script src=@Url.Content("~/Scripts/jquery-ui-1.8.11.js")" type="text/javascript"></script>

 <div class="editor-label">
            @Html.LabelFor(model => model.Name)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name) 
        </div>

此错误的来源是什么?

祝你好运

修改

非,是

<script src=@Url.Content("~/Scripts/jquery-ui-1.8.11.js")" type="text/javascript"></script>

但我还有另一个错误:

$("#Name").autocomplete(url, {minChars: 1, multiple: true, formatResult: function (row) {return row[0].replace(/(<.+?>)/gi, "");}}).result is not a function

如果这有帮助:

我在_Layout.cshtml上的每个脚本库绑定

_Layout.cshtml

3 个答案:

答案 0 :(得分:5)

直接原因是你没有加载jQuery自动完成插件(错误信息很清楚)。

根本原因是你错过了src=之后的开场报价:

<script src=@Url.Content("~/Scripts/jquery-ui-1.8.11.js")"

答案 1 :(得分:2)

您似乎没有包含jQuery Autocomplete插件。

http://docs.jquery.com/Plugins/autocomplete

编辑:jQuery UI附带了一个自动完成功能,这是你在这里使用的。此函数与jQuery Autocomplete插件不同。它的工作方式不同。您在这里使用的代码是引用该插件,但您调用的自动完成功能是jQuery UI附带的功能。您应该看看jQuery UI自动完成,如果这不是您需要的,您可以包含jQuery自动完成插件脚本,并使用它来保留现有代码。请务必在jQuery UI之后添加插件脚本文件,以免被覆盖或下载新版本的jQuery UI并删除自动完成功能。

jQuery UI自动填充 http://jqueryui.com/demos/autocomplete/

jQuery自动填充插件 http://docs.jquery.com/Plugins/autocomplete

<script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/autocomplete/jquery.autocomplete.js"></script>

正在运行的jQuery UI插件示例

$( "#Name" ).autocomplete({
    source: url,
    minLength: 1,
    select: function( event, ui ) {
        log( ui.item ?
            "Selected: " + ui.item.value + " aka " + ui.item.id :
            "Nothing selected, input was " + this.value );
    }
});

答案 2 :(得分:-1)

您是否链接了库?:

<script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/autocomplete/jquery.autocomplete.js"></script>