Foros del Web » Programando para Internet » Jquery »

jquery autocomplete que no permita valores ajenos a la lista

Estas en el tema de jquery autocomplete que no permita valores ajenos a la lista en el foro de Jquery en Foros del Web. Hola, tengo una funcion jquery autocomplete, esta: (function($) { $( "#tags" ).autocomplete({ source: "tags.php", autoFocus: true, selectFirst: true }); })(jQuery); que esta asociada a una ...
  #1 (permalink)  
Antiguo 19/02/2013, 02:26
Avatar de Pentaxeros  
Fecha de Ingreso: mayo-2008
Mensajes: 173
Antigüedad: 16 años
Puntos: 3
jquery autocomplete que no permita valores ajenos a la lista

Hola, tengo una funcion jquery autocomplete, esta:

(function($) {
$( "#tags" ).autocomplete({
source: "tags.php",
autoFocus: true,
selectFirst: true

});
})(jQuery);

que esta asociada a una campo input:
<input type="text" id="tags" name="searchbox" value="Buscar negocios y lugares..." onclick="clearInput(this)" onblur="fillInput(this)">

Y lo que quiero es que segun vas escribiendo, te va mostrando resultados, pero quiero que NO deje escribir nada que no este en los resultados que se van mostrando.

digamos que yo empiezo a escribir:
mad

el autocomplete me mostrara:
madrid
madrileños
madera

pero si continuo y pongo
mado

automaticamente me quite la o y siga poniendo mad

Se puede hacer con el autocomplete de jquery directamente????

Gracias!
  #2 (permalink)  
Antiguo 21/02/2013, 03:03
Avatar de Pentaxeros  
Fecha de Ingreso: mayo-2008
Mensajes: 173
Antigüedad: 16 años
Puntos: 3
Respuesta: jquery autocomplete que no permita valores ajenos a la lista

Ya lo he podido solucionar, y dejo aqui como por si le sirve a alguien en el futuro.

Finalmente la cosa funciona asi:

var validOptions = ["animales","animales adiestramiento","animales clinicas veterinarias","animales granjas","animales hipicas","animales mascotas","animales perreras"];


(function($) {
$( "#tags" ).autocomplete({
source: "<?php echo PROTOCOLOHTTP;?>www.tuciudad360.es/portal/tags2.php",
autoFocus: true,
selectFirst: true,
typeAhead: true,
minChars: 0,
minLength:0,
autoFocus: true,
select:function(e,u) {
var option_selected = u.item.value;
$(this).autocomplete('search', option_selected);
}

}).keyup(function() {
var isValid = false;
for (i in validOptions) {
if (validOptions[i].toLowerCase().match(this.value.toLowerCase())) {
isValid = true;
}
}
valoractual=this.value;
if (valoractual.length<previousValue.length)
{
previousValue = this.value;
} else
{
if (!isValid) {
this.value = previousValue
} else {
previousValue = this.value;
}
}

});


})(jQuery);

La funcion keyup, solo necesita un array validOptions que es el que tiene los valores correctos.

Saludos!!!

Etiquetas: lista
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:16.