2013-05-18 2 views
0

Я использую jquery-tokeninput и не могу заставить его работать, вызов ajax не вводит метод успеха, когда результат содержит список результатов.jQuery-tokeninput не показывая мои результаты поиска

Я использую JQuery версии 1.9.1 и tokeninput версии 1.6.1

Я использую этот HTML и JQuery скрипт:

<input type="text" class="selector" name="users"> 

$('.selector').tokenInput("/event/usersearch", { method: 'POST', minChars: 2 }); 

Когда я проверить это, я получаю следующий ответ:

Нажмите на поле редактирования, чтобы выделить его с фокусом.

  • выпадающий список отображается с текстом «Type в поисковому запросу»

Нажмите букву и.

  • раскрывающийся исчезает, как ожидается, как я установить его искать после того, как к гольцов

нажмите букву р.

  • раскрывающийся возвращается с текстом «Поиск ...»
  • запрос отправляется на сервер с строки запроса «вверх»
  • сервер реагировать с этим (Content-Type: приложения/JSON; кодировка = UTF-8) (55 байт):

    [{ID: 2, имя: 'Суперпользователь'}, {ID: 3, имя: 'Бо SuperDuper'}]

    но в раскрывающемся списке показывается «Поиск ...»

нажмите письмо х

  • запрос устанавливаются на сервер с строкой запроса "UPX"
  • сервер отвечает (2 байта): []
  • изменений выпадающего до «Нет результатов»

Поэтому, когда сервер возвращает пустой список, все работает нормально, но если записи возвращены, пользовательский интерфейс не отображает элементы.

Я пробовал с запросами GET и POST ...

Я попытался вернуться [{ID: 2, название: "Суперпользователь"}, {ID: 3, название: "Бо SuperDuper"}], но с таким же результатом

Я попытался вернуться [{ID: «2», имя: «Суперпользователь»}, {id: «3», имя: «Bo Superduper»}], но с тем же результатом

Я попытался вернуть [{"id": "2", "name ":" Суперпользователь "}, {" id ":" 3 "," name ":" Bo Superduper "}], но с тем же результатом

В файле сценария javascript я установил точку останова в первой строке в функция успеха ajax:

// Attach the success callback 
ajax_params.success = function(results) { 
cache.add(cache_key, $(input).data("settings").jsonContainer ? results[$(input).data("settings").jsonContainer] : results); 

И не вызывается запрос, содержащий элементы, но вызовы, возвращающие пустые списки, будут вызваны. Это объясняет, почему «Поиск ...» остается включенным и изменяется только при возврате пустых списков.

Все запросы возвращают статус http 200 OK.

От байта подсчитать UTF-8 так же, как ASCII, так что это не должно быть проблемой кодирования ...

Так запрос Ajax передается и возвращается, но метод успеха не называется?

ответ

0

Как вы в настоящее время возвращаете свой JSON? Если вызов ajax не вызывает успеха, я бы предположил, что ваш ответ каким-то образом искажен. Например, из 4 версий, которые вы пробовали, действителен только последний. JSON требует двойных кавычек, а также имена атрибутов в кавычках.

Я бы предложил автоматически генерировать строку JSON в источнике, что должно гарантировать, что вы получите правильные типы заголовков и тому подобное. Если это php, вы можете использовать:

echo json_encode(//PHP Assoc Array Here);

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