я использую щебетать предложить список книг пользователям на странице поиска. Все работает, как и ожидалось, однако теперь я хотел бы добавить еще одно значение к скрытому полю.
Большинство уроков, на которые я смотрю, устарели.
Моя HTML-форма выглядит следующим образом;
<form id="search" action="<?php echo URL; ?>books/itemView?id=" method="post">
<input type="text" name="search" class="typeahead" id="demo"/>
<input type="text" name="isbn" type="hidden" class="typeahead" id="isbn"/>
<input type="submit" value="Submit" style="">
</form>
Я могу получить список предложений из моего файла JSON. Я также могу щелкнуть один из них и выбрать его. Это помещает id
в моем поле ввода. Я также хотел бы разместить isbn
в скрытом поле, как это возможно.
Мой JS ниже;
$(document).ready(function() {
var url = 'http://localhost/logintest/';
var books = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('title'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
limit: 3,
prefetch: {
url: url+'books.json',
ttl: 0,
filter: function(list) {
return $.map(list, function(book) {
return {
id: book.id,
title: book.title,
author: book.author,
isbn: book.isbn
};
});
}
}
});
books.initialize();
$('.demo .typeahead').typeahead(null, {
displayKey: 'id', // displays the id in search bar once selection made
engine: Handlebars,
templates: {
header: '<h1>Name</h1>',
empty: [
'<div class="empty-message">',
'no results found',
'</div>'
].join('\n'),
suggestion: Handlebars.compile(
<strong>{{title}}</strong>
},
engine: Handlebars,
source: books.ttAdapter()
});
});
ОК, получается, что это ответ, добавьте это ниже функции typeahead
$('input.query').on('typeahead:selected', function (e, datum) {
console.log(datum['empID']);
});
Измените empID на то, что вы хотите войти.
Других решений пока нет …