2011-02-03 5 views
1

Вот сгущенное исходный код:Почему автозаполнение jQuery не появляется?

<html> 
    <head> 
     <script type="text/javascript" src="/admin/jsi18n/"></script> 
     <link href="/media/css/ui-lightness/jquery-ui-1.8.9.custom.css" type="text/css" media="screen" rel="stylesheet" /> 
     <script type="text/javascript" src="/media/admin/js/core.js"></script> 
     <script type="text/javascript" src="/media/admin/js/admin/RelatedObjectLookups.js"></script> 
     <script type="text/javascript" src="/media/admin/js/jquery.min.js"></script> 
     <script type="text/javascript" src="/media/admin/js/jquery.init.js"></script> 
     <script type="text/javascript" src="/media/admin/js/actions.min.js"></script> 
     <script type="text/javascript" src="/media/js/jquery-1.4.4.min.js"></script> 
     <script type="text/javascript" src="/media/js/jquery.autocomplete.pack.js"></script> 
    </head> 
    <body> 
     <div> 
      <label for="id_postal_code" class="required">Postal code:</label> 
      <input type="text" name="postal_code" id="id_postal_code" /> 
      <script>$('#id_postal_code').autocomplete({source:['one','two','three']});</script> 
     </div> 
    </body> 
</html> 

Я пытаюсь напечатать «о» в текстовом поле, но ничего не появляется.

Он добавляет этот атрибут autocomplete='off' и class='ac_input' к входу, поэтому ... кажется, он инициализируется правильно, я просто не знаю, почему ничего не появляется.

Если я смотрю на исходный код в firefox, то ac_input мигает каждый раз, когда я нажимаю клавишу, поэтому он, кажется, настраивает класс каждый раз, когда я ввожу что-то, но автозаполнение никогда не переключается на «включено» (что я «Думаю, он должен в какой-то момент?).

+0

Не должно быть $ ('# id_postal_code'). Autocomplete ({source: ['one', 'two', 'three']}); быть завернутым в $ (document) .ready()? – Gazler

+0

@ Gazler: Думаю, мне не пришлось бы, если бы я положил его * после * элемента. Это должно гарантировать, что элемент загружен, нет? – mpen

ответ

1

Попробуйте заменить {source:['one','two','three']} на ['one','two','three'].

+0

Что за черт ??? Это не то, что показывает их пример (http://jqueryui.com/demos/autocomplete/), но теперь он работает. Интересно, почему это ... (спасибо) – mpen

+0

У меня тоже была проблема с автозаполнением. Однако это решение не сработало для меня. На самом деле все ухудшилось: я получил ошибку времени выполнения, потому что свойство 'source' не определено. В моем случае я улучшаю элемент jQuery, который еще не помещен в поток документов, и это, похоже, проблема. Задерживая повышение до тех пор, пока я не вставляю элемент в DOM, я заставил его работать. Но, проходя в просто и массив, как это просто не работает для меня. –

+0

@Ates: Просто понял, почему ... Я загрузил неправильную версию автозаполнения! Я использовал старый из bassistance.de, но я * думал *, я использовал новый из jQuery UI. Они оба находятся в моей папке JS: \ – mpen

2

Оберните ваш звонок внутри

$(function() { 
    // your code here... 
}); 

Похоже, ваш DOM пока не готов.

+0

Нет, изменил его на '$ (function() {$ ('# id_postal_code'). Autocomplete ({source: ['one', 'two', 'three']});});' и он не сделал разница. – mpen

2

Вы инициализировать JQuery дважды - админ/jquery.min.js и JS/JQuery-1.4.4.js

Постарайся фиксируя это.

+0

Django добавляет один из них, но он устанавливает 'noConflict', поэтому я должен иметь две копии. – mpen

0

Если ни один из вышеперечисленных решений или here не разрешает эту проблему, обязательно проверьте разметку страницы для элемента ul.ui-autocomplete и проверьте z-index. В моем случае плагин работал нормально, элемент позиционировался правильно, но z-index нужно было набить.

Смежные вопросы