Ответ 1
$('.typeahead').on('typeahead:selected', function(evt, item) {
// do what you want with the item here
})
Я хочу запустить функцию javascript сразу после того, как пользователь выбирает значение, используя twitter bootstrap Typeahead
Я ищу что-то вроде выбранного события
$('.typeahead').on('typeahead:selected', function(evt, item) {
// do what you want with the item here
})
$('.typeahead').typeahead({
updater: function(item) {
// do what you want with the item here
return item;
}
})
В первый раз я отправил ответ здесь (много раз я нашел здесь ответ), так что вот мой вклад, надеюсь, это поможет. Вы должны иметь возможность обнаружить изменение - попробуйте следующее:
function bob(result) {
alert('hi bob, you typed: '+ result);
}
$('#myTypeAhead').change(function(){
var result = $(this).val()
//call your function here
bob(result);
});
Для объяснения того, как typeahead работает для того, что вы хотите сделать здесь, следуя приведенному ниже примеру кода:
Поле ввода HTML:
<input type="text" id="my-input-field" value="" />
Блок кода JavaScript:
$('#my-input-field').typeahead({
source: function (query, process) {
return $.get('json-page.json', { query: query }, function (data) {
return process(data.options);
});
},
updater: function(item) {
myOwnFunction(item);
var $fld = $('#my-input-field');
return item;
}
})
Пояснение:
$('#my-input-field').typeahead(
source:
для извлечения списка JSON и отображения его пользователю.updater:
. Обратите внимание, что он еще не обновил текстовое поле с выбранным значением.item
и делать то, что вы хотите с ней, например. myOwnFunction(item)
.$fld
, если вы хотите что-то с этим сделать. Обратите внимание, что вы не можете ссылаться на поле, используя $(this).return item;
в параметр updater:
, чтобы поле ввода фактически обновлялось с помощью переменной item
.Я создал расширение, которое включает эту функцию.
В соответствии с их документацией правильный способ обработки события selected
заключается в использовании этого обработчика событий:
$('#selector').on('typeahead:select', function(evt, item) {
console.log(evt)
console.log(item)
// Your Code Here
})
source: function (query, process) {
return $.get(
url,
{ query: query },
function (data) {
limit: 10,
data = $.parseJSON(data);
return process(data);
}
);
},
afterSelect: function(item) {
$("#divId").val(item.id);
$("#divId").val(item.name);
}