Twitter Bootstrap 3 Typeahead / Tagsinput Завершение дважды
Редактировать: Добавленоработает JSFiddle
Я использую Twitter Bootstrap TagsInput с Bootstrap Typeahead. Мой источник - файл json, но это не имеет значения, и я проверил статический источник.
Тип ввода и ввод тегов работают, однако, когда я нажимаю клавишу ввода, вкладку или нажимаю на тег, он создает дубликат завершения.
Это extre 'default' происходит всякий раз, когда я нажимаю клавишу ввода или завершаю ввод текста. Если я сломаю печатающую головку, разделив ее запятыми или убрав фокус с окна, это не произойдет.
Вот вход:
<input id="itemCategory" type="text" autocomplete="off" class="tagsInput form-control" name="itemCategory">
А вот и скрипт:
<script>
$('.tagsInput').tagsinput({
confirmKeys: [13, 44],
maxTags: 1,
typeahead: {
source: function(query) {
return $.get('listcategories.php');
}
}
});
</script>
Я уверен, что это что-то нехорошее, что не поддается воспроизведению, к счастью, поэтому я надеюсь, что кто-то получит некоторые институциональные знания, которые, как они знают, вызовут нечто подобное.
Вот изображение дополнительного текста в dev. инструменты:
Я действительно ценю любые советы или предложения. Спасибо.
РАБОЧИЙ КОД
Благодаря @Girish, следующее было тем, что «исправило» эту проблему. Я считаю, что на данный момент это ошибка, появившаяся где-то в более поздней версии jQuery или Typeahead. Этот код просто удаляет лишний элемент вручную, хотя, надеюсь, что-то придет, чтобы предотвратить его размещение в первую очередь, удалив лишний код. На данный момент это работает для меня.
$('.tagsInput').tagsinput({
confirmKeys: [13, 44],
maxTags: 1,
typeahead: {
source: function(query) {
return $.get('tags.php');
}
}
});
$('.tagsInput').on('itemAdded', function(event) {
setTimeout(function(){
$(">input[type=text]",".bootstrap-tagsinput").val("");
}, 1);
});