Quiero correr función javascript justo después usuario seleccionar un valor usando Twitter arranque TYPEAHEAD, manejar el evento seleccionado en twitter bootstrap Typeahead?
i búsqueda sobre algo como evento seleccionado
Quiero correr función javascript justo después usuario seleccionar un valor usando Twitter arranque TYPEAHEAD, manejar el evento seleccionado en twitter bootstrap Typeahead?
i búsqueda sobre algo como evento seleccionado
$('.typeahead').on('typeahead:selected', function(evt, item) {
// do what you want with the item here
})
https://github.com/twitter/typeahead.js es diferente de Bootstrap typeahead – Utopik
Este enfoque funciona para https://twitter.github.io/typeahead.js/ no para el arranque de Twitter. (typeahead ahora está separado de twitter bootstrap) –
¿hay alguna forma de presionar la tecla para este manejador? el evt var no parece tener una propiedad 'que' – HussienK
primera vez que he publicado una respuesta aquí (un montón de veces he encontrado una respuesta aquí), así que aquí está mi contribución, espero que ayude. Debería poder detectar un cambio: intente esto:
function bob(result) {
alert('hi bob, you typed: '+ result);
}
$('#myTypeAhead').change(function(){
var result = $(this).val()
//call your function here
bob(result);
});
Se marcaron porque esta no es la forma admitida ni recomendada para manejar los elementos seleccionados en typeahead, consulte aquí: https://github.com/twitter/typeahead.js at: typahead: seleccionado – Oddman
Creé una extensión que incluye esa característica.
$('.typeahead').typeahead({
updater: function(item) {
// do what you want with the item here
return item;
}
})
Forma oficial de hacer lo que se pide y funciona bien :) – PierrickM
Para una explicación de la forma de escritura siguiente funciona para lo que quiere hacer aquí, tomando el ejemplo de código siguiente:
campo de entradaHTML:
<input type="text" id="my-input-field" value="" />
bloque de código 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;
}
})
Explicación:
$('#my-input-field').typeahead(
source:
a buscar a la lista de JSON y mostrarlo a el usuario.updater:
. Tenga en cuenta que aún no ha actualizado el campo de texto con el valor seleccionado.item
y hacer lo que quiera con él, p. myOwnFunction(item)
.$fld
, en caso de que quiera hacer algo con él. Tenga en cuenta que no puede hacer referencia al campo usando $ (this).return item;
dentro de la opción updater:
por lo que el campo de entrada se actualiza con la variable item
.Según su documentation, la forma correcta de manejar selected
evento es mediante el uso de este controlador de eventos:
$('#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);
}
enlace a: http://stackoverflow.com/a/11747290/212702 –
La respuesta verdadera no es la seleccionada, aunque ... :( – Abhishek