$ ("# Name"). Автозаполнение не является функцией - PullRequest
2 голосов
/ 22 июня 2011

Когда я запускаю эту страницу, я вижу ошибку в 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>

Каков источник этой ошибки?

С наилучшими пожеланиями

EDIT

Нон, это

<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 ]

5 голосов
/ 22 июня 2011

Прямая причина заключается в том, что вы не загружаете плагин jQuery для автозаполнения (об этом довольно ясно видно сообщение об ошибке).

Основная причина заключается в том, что вы пропускаете начальную цитату после src=:

<script src=@Url.Content("~/Scripts/jquery-ui-1.8.11.js")"
2 голосов
/ 22 июня 2011

Не похоже, что вы включаете плагин jQuery Autocomplete.

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

Редактировать: в пользовательский интерфейс jQuery включена функция автозаполнения, которую вы здесь используете. Эта функция отличается от плагина jQuery Autocomplete. Это не работает так же. Код, который вы используете здесь, ссылается на этот плагин, но функция автозаполнения, которую вы вызываете, включена в пользовательский интерфейс jQuery. Вы должны взглянуть на автозаполнение пользовательского интерфейса jQuery, и если это не то, что вам нужно, вы можете включить скрипт плагина jQuery Autocomplete и использовать его вместо этого, сохраняя существующий код. Обязательно добавьте файл сценария плагина после пользовательского интерфейса jQuery, чтобы он не перезаписывался, или загрузите новую версию пользовательского интерфейса jQuery с удаленной функцией автозаполнения.

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 );
    }
});
0 голосов
/ 22 июня 2011

Вы связали библиотеку?:

<script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/autocomplete/jquery.autocomplete.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...