Con jQuery, con otra librería/
framework y hasta con JavaScript
puro y duro en un entorno en el que aún no se brinde soporte a los métodos implementados por ECMAScript 6, solo necesitarías recorrer el conjunto de opciones del
<select>
y hacer la comparación con el valor escrito, pudiéndote apoyar con métodos de búsqueda en cadenas como
.search()
(si deseas buscar usando una expresión regular) o
.indexOf()
. En el caso de que coincidan los valores comparados, tan solo tendrías que asignar el valor
booleano true
a la propiedad
selected
de la opción en cuestión y cortar la secuencia del bucle. Para evitar problemas con la diferencia entre mayúsculas y minúsculas, opto por dejar en minúsculas a los valores comparados usando el método
.toLowerCase()
.
Código Javascript
:
Ver originalvar seleccion = function(input, select){
$(input).on("input", function(){
var palabra = $(this).val().toLowerCase();
$(select).children().each(function(){
var opcion = $(this).val().toLowerCase();
if (opcion.indexOf(palabra) === 0){
$(this).prop("selected", true);
return false;
}
});
});
};
seleccion("#id_del_input", "#id_del_select");
DEMO