2010-05-19 2 views
2

Im используя JQuerys Autocomplete плагин, но он не автозаполняется при вводе чего-либо.JQuery автозаполнение проблемы

Любые идеи, почему это не работает? Основной пример работает, но не мой.

var ppl = {"ppl":[{"name":"peterpeter", "work":"student"}, 
    {"name":"piotr","work":"student"}]}; 

var options = { 
    matchContains: true, // So we can search inside string too 
    minChars: 2,  // this sets autocomplete to begin from X characters 
    dataType: 'json', 
    parse: function(data) { 
     var parsed = []; 
     data = data.ppl; 
     for (var i = 0; i < data.length; i++) { 
      parsed[parsed.length] = { 
       data: data[i], // the entire JSON entry 
       value: data[i].name, // the default display value 
       result: data[i].name // to populate the input element 
      }; 
     } 
     return parsed; 
    }, 
    // To format the data returned by the autocompleter for display 
    formatItem: function(item) { 
     return item.name; 
    } 
}; 

$('#inputplace').autocomplete(ppl, options); 

Ok. Обновлено:

<input type="text" id="inputplace" /> 

Итак, при вводе, например, «peter» в поле ввода. Не отображаются предложения автозаполнения. Это должно дать «peterpeter», но ничего не происходит.

И еще одно. Использование этого примера отлично работает.

var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" "); 
$("#inputplace").autocomplete(data); 
+2

'var ppljson = eval (ppl);' Почему? 'ppl' уже является допустимым объектом JS. Было бы разумно, если 'ppl' была строкой (' '{...} '') и _needed_ для 'eval()' 'ed. – jensgram

+0

Да, это правда. Удалено eval, но оно все еще не работает. Есть идеи? :) – heffaklump

+0

Хорошо, что ** точно ** делает «это не работает» означает? Ошибки? Крушение браузера? Текст выходит назад? Вы не помогаете нам здесь. – Pointy

ответ

3

Ну, глядя на код в этом плагине, опция «разобрать» выглядит как это только называется, когда данные извлекаются с помощью вызова AJAX. В качестве эксперимента, вы можете попробовать пройти данные, которые вам не нужны:

var ppl = [{"name":"peterpeter", "work":"student"}, 
{"name":"piotr","work":"student"}]; 
+0

Оооо, вот почему. Да, попробовал с вашей версией ppl и забрал функцию синтаксического анализа, и теперь она работает! : DD Да! Спасибо огромное! – heffaklump

+0

Хорошо, это здорово! Конечно, если вы в конце концов * сделаете * используйте обратные вызовы Ajax, вы можете восстановить обработчик «разбора». (Я не думаю, что это причиняет боль чему-либо, если у вас есть часть вариантов, когда вы не делаете Ajax, если это поможет при тестировании.) – Pointy

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