Я пытаюсь использовать typeahead для своего поля электронной почты, поэтому, когда администраторы ищут адрес электронной почты, им показываются варианты. Довольно простой. Мой источник загружен из php BE, который собирает свои данные из mysql.
Итак, у меня есть тег ввода:
<input type="text" name="userEmail" id="email" value="" class="form-control" />
В моем документе готовая функция у меня есть:
$('#email').typeahead({
ajax: {
triggerLength: 3,
url: '/user/findBootstrap'
},
display: 'email'
});
И когда я набираю: «gbo», мой php BE возвращает json, похожий на этот:
[{"id":"94","email":"[email protected]"},{"id":"142","email":"[email protected]"},{"id":"193","email":"[email protected]"}]
Я подтверждаю, что получаю данные, посмотрев на консоль. Typeahead просто не будет показывать какие-либо варианты, что бы я ни печатал. Библиотека загружается нормально (статус 200), и я не получаю ошибок JS
Я нашел проблему. Я просто скачаю это сегодня, см. Дату публикации. В отличие от того, что указано на страница документации параметр для изменения имени искомого параметра — это не «display», а «displayField».
Они, вероятно, не синхронизированы с их документацией …
Надеюсь, что этот пост поможет другим не терять свое время с этим …
Итак, вот правильный синтаксис, который должен был использоваться в моем случае:
$('#email').typeahead({
ajax: {
triggerLength: 3,
url: '/user/findBootstrap'
},
displayField: 'email' // NOT "display"!!!!!
});
Других решений пока нет …