Tengo un campo de autocompletar en funcionamiento en mi aplicación web y estoy buscando una forma de aumentar la usabilidad del campo omitiendo automáticamente los campos de categoría cuando una tecla de flecha se usa para desplazarse hacia abajo por las opciones disponibles (después de escribir en un término de búsqueda parcial).
Por ejemplo, si un usuario comienza a escribir "un", el autocompletado mostrará dos categorías con los elementos de cada uno. El usuario desea seleccionar uno de los elementos en la lista debajo de "Personas". Usan la tecla de flecha para moverse hacia abajo en la lista. Actualmente, este código inserta las categorías en los resultados como un elemento de lista. Cuando utilice las teclas de flecha, debe moverlas para pasarlas a fin de resaltar y seleccionar un resultado. De cualquier forma, la aplicación podría omitir automáticamente los encabezados de categoría?Categoría de Autocompletar jQuery UI Cómo saltear encabezados de categoría
$.widget("custom.catcomplete", $.ui.autocomplete, {
_renderMenu: function(ul, items) {
var self = this,
currentCategory = "";
$.each(items, function(index, item) {
if (item.category != currentCategory) {
ul.append("<li class='ui-menu-item ui-category'>" + item.category + "</li>");
currentCategory = item.category;
}
self._renderItem(ul, item);
});
}
});
var data = [
{ label: "annk K12", category: "Products" },
{ label: "annttop C13", category: "Products" },
{ label: "anders andersson", category: "People" },
{ label: "andreas andersson", category: "People" },
{ label: "andreas johnson", category: "People" }
];
$("#textfield").catcomplete({
source: data,
select: function(event, ui) {
window.location.hash = "id_"+escape(ui.item.id);
}
});
Perfecto, eso fue mucho más fácil de lo que pensé. Gracias por tu ayuda. – arcdegree
@arcdegree: No hay problema, me alegro de ayudar :) –
Dado que '1.10.4' esto ya no funciona, debido a esto - [Menú: Eliminar el requisito de anclajes en los elementos del menú] (http://bugs.jqueryui.com/ boleto/10130). Esto se debe a que se han eliminado los anclajes, por lo que ya no existe distinción entre los elementos 'li', todos reciben la clase' ui-menu-item' independientemente de si lo especifica o no. – Lankymart