Я использую Twitter Typeahead (http://twitter.github.io/typeahead.js) в разных местах формы, чтобы упростить ввод значений в текстовые поля. Однако у меня есть один вход, где я хочу запретить ввод значения, отличного от того, которое предлагается typeahead.
Хотя я традиционно использовал бы для такой задачи, Typeahead обеспечивает гораздо лучший пользовательский интерфейс.
В настоящее время у меня есть следующий код для запуска Typeahead:
var countries = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
limit: 10,
prefetch: {
url: '/assets/data/countries.json',
filter: function(list) {
return $.map(list, function(country) { return { name: country }; });
}
}
});
countries.initialize();
$('input[name="member_country"].typeahead').typeahead(null, {
name: 'countries',
displayKey: 'name',
source: countries.ttAdapter()
}).on("typeahead:selected typeahead:autocompleted", function (ev, datum) {
console.log(datum);
});
Любые указатели на то, как я могу сравнить выбранное значение с теми, которые присутствуют в JSON, который я загружаю для ввода, чтобы проверить, соответствует ли оно?