Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Posicionarse en un select

Estas en el tema de Posicionarse en un select en el foro de Jquery en Foros del Web. Buenas, Dispongo de un select con muchas ítems, y quiero posicionarme según el contenido de un textbox, es decir, cuando escribo b, que se posicione ...
  #1 (permalink)  
Antiguo 09/02/2018, 13:24
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 547
Antigüedad: 17 años, 10 meses
Puntos: 4
Posicionarse en un select

Buenas,
Dispongo de un select con muchas ítems, y quiero posicionarme según el contenido de un textbox, es decir, cuando escribo b, que se posicione al primer elemento que empieze por b, si luego escribo u, que será bu, se posicione al primer elemento que empieze por bu, o al próximo.

Código Javascript:
Ver original
  1. $('#select').find('option[text="B"]').val()

Pero esto me obliga a introducir el texto completo, y yo quiero que empieze por el texto introducido

Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #2 (permalink)  
Antiguo 10/02/2018, 12:06
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.567
Antigüedad: 11 años, 9 meses
Puntos: 1087
Respuesta: Posicionarse en un select

estas abierto a usar un framework como complemento o en lugar de jquery?

puedes hacer esto con Vue y no requiere grandes conocimientos


También se puede llevar eso mismo a jquery pero habrá que ver como tienes tu código para saber que tantos cambios requieres hacer, pero seguramente viendo este código puedes sacar ideas y llevarlo tu mismo a jquery

Última edición por ArturoGallegos; 10/02/2018 a las 12:11
  #3 (permalink)  
Antiguo 10/02/2018, 17:00
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 547
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: Posicionarse en un select

Muchas gracias, tomo nota.
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #4 (permalink)  
Antiguo 10/02/2018, 22:23
Avatar de Alexis88
Objetivista
 
Fecha de Ingreso: noviembre-2011
Ubicación: Lima, Perú
Mensajes: 5.432
Antigüedad: 8 años, 1 mes
Puntos: 930
Respuesta: Posicionarse en un select

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 original
  1. var seleccion = function(input, select){
  2.     $(input).on("input", function(){
  3.         var palabra = $(this).val().toLowerCase();
  4.        
  5.         $(select).children().each(function(){  
  6.             var opcion = $(this).val().toLowerCase();          
  7.            
  8.             if (opcion.indexOf(palabra) === 0){
  9.                 $(this).prop("selected", true);
  10.                 return false;
  11.             }
  12.         });
  13.     });
  14. };
  15.  
  16. seleccion("#id_del_input", "#id_del_select");

DEMO

__________________
«Laissez faire et laissez passer, le monde va de lui même»

Última edición por Alexis88; 10/02/2018 a las 22:33 Razón: Artículo
  #5 (permalink)  
Antiguo 11/02/2018, 13:35
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 547
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: Posicionarse en un select

Gracias Alexis, lo había conseguida de otra manera, pero esta me parece mejor.
__________________
Qué fácil cuando lo sabes y qué difícil cuando no

Etiquetas: select
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 07:29.