Foros del Web » Programando para Internet » Javascript »

Adaptar un OnChange de un Select

Estas en el tema de Adaptar un OnChange de un Select en el foro de Javascript en Foros del Web. Hola de nuevo, a ver si alguien me ilumina un poco el camino. Tengo un select que se rellena a partir de una búsqueda previa ...
  #1 (permalink)  
Antiguo 04/04/2017, 08:02
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 5 meses
Puntos: 8
Adaptar un OnChange de un Select

Hola de nuevo, a ver si alguien me ilumina un poco el camino. Tengo un select que se rellena a partir de una búsqueda previa y queda tal que así:

Código HTML:
Ver original
  1. <select name="empresa3" onchange = "document.getElementById('observaciones').value = this.value;">
  2.     <option value="Empresa 1">Empresa 1 - 123456</option>  
  3.     <option value="Empresa 2">Empresa 2 - 654321</option>  
  4.     <option value="Empresa 3">Empresa 3 - 159632</option>      

Como veréis tiene un onchange para que al seleccionar una opción, se rellene de forma automática otro campo llamado "Observaciones" con el valor seleccionado. Hasta ahí bien, pero yo necesito otra cosa. Lo que necesito es que es que en lugar del value, se copie la etiqueta que se muestra en el desplegable, y a poder ser, tampoco entera, sino solo la parte que viene después del guión. Es decir, si selecciono la 2ª opción, me debería copiar al campo "Observaciones" tan solo "654321". Me serviría si copia la etiqueta completa, pero ya que me pongo, quiero intentar hacerlo justo como me hace falta.

¿Alguien me puede echar un mano con esto? Porque no tengo ni idea de por donde tirar.

Muchas gracias por adelantado, salu2
__________________
Vayamos por Partes :: Jack el Destripador
  #2 (permalink)  
Antiguo 04/04/2017, 08:59
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Adaptar un OnChange de un Select

No es recomendado usar los JS directamente en los tag HTML (estándares) mejor úselos externos y los llama en el head, o si no coloque todos sus script en el head, lo que normalmente hace toda la people

Acá esta la función que le colocara el texto del combo, ya con el parceo después del guion seria de que busque un poco mas
Código Javascript:
Ver original
  1. function modifica(){
  2.      document.getElementById("observaciones").value = event.target.options[event.target.selectedIndex].text;
  3. }
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #3 (permalink)  
Antiguo 07/04/2017, 04:26
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 11 años, 10 meses
Puntos: 39
Respuesta: Adaptar un OnChange de un Select

Pues yo trabajaría con las etiquetas data para hacerlo más sencillo.

Código HTML:
Ver original
  1. <select name="empresa3">
  2.     <option value="Empresa 1" data-code="123456">Empresa 1 - 123456</option>  
  3.     <option value="Empresa 2" data-code="654321">Empresa 2 - 654321</option>  
  4.     <option value="Empresa 3" data-code="159632">Empresa 3 - 159632</option>      

Código Javascript:
Ver original
  1. (function() {
  2.     // Pasamos los elemento a varibales para trabajar mejor con ellos
  3.  
  4.     const select = document.querySelector( "select[name=empresa3]" );
  5.     const observaciones = document.getElementById( "observaciones" );
  6.  
  7.     // Ponemos a la escucha el cambio en el select
  8.  
  9.     select.addEventListener( "onchange", ev => myFunction( ev ));
  10.  
  11.     // Función que trata el cambio en el select
  12.  
  13.     function myFunction( ev ) {
  14.         // Pasamos a una variable el option seleccionado
  15.  
  16.         const optSelect = select.options[select.selectedIndex];
  17.  
  18.         // Obtenemos el número de la empresa del data-code
  19.  
  20.         const num = optSelect.dataset.code;
  21.  
  22.         // Introducimos el número en el campo observaciones
  23.  
  24.         observaciones.value = num;
  25.     }
  26. })();

Espero que te ayude, esta opción tiene más código, pero a mi me gusta trabajar con un código más limpio y un poco más extenso porque después te ayudará cuando tengas que hacer modificaciones o actualizaciones del mismo.

Un saludo
__________________
Diseño Web - Arisman Web

Última edición por manuparquegiralda; 07/04/2017 a las 04:33

Etiquetas: forma, onchange, 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 22:28.