Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Pasar elementos de select multiple a input

Estas en el tema de Pasar elementos de select multiple a input en el foro de Javascript en Foros del Web. Hola a todos como puedo pasar los elementos de un select multiple a un input y separarlos por comas... es decir si tengo un select ...
  #1 (permalink)  
Antiguo 20/11/2014, 13:43
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Pasar elementos de select multiple a input

Hola a todos como puedo pasar los elementos de un select multiple a un input y separarlos por comas...
es decir si tengo un select colores y elijo azul, violeta y rosa

en mi input quede : azul, violeta, rosa

saludos
  #2 (permalink)  
Antiguo 20/11/2014, 13:49
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Pasar elementos de select multiple a input

tengo esto para un elemento

Código HTML:
function setValues(select){
    var text = select.options[select.selectedIndex].text;
    document.getElementById('nombre2').value = text ;
}

<select multiple="multiple" name="ins[]" onchange="setValues(this)" >

<?php

...
?>

</select>


Pero al elegir mas de un elemento... solo pasa un valor
  #3 (permalink)  
Antiguo 20/11/2014, 14:10
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Pasar elementos de select multiple a input

Podrías hacerlo así:

Código HTML:
Ver original
  1. <select multiple id = "foo">
  2.     <option>Uno</option>
  3.     <option>Dos</option>
  4.     <option>Tres</option>
  5. <button id = "bin">Clic</button>
  6. <input type = "text" id = "bar" />

Código Javascript:
Ver original
  1. var foo = document.querySelector("#foo"),
  2.     bar = document.querySelector("#bar"),
  3.     bin = document.querySelector("#bin"),
  4.     options = [], value, index;
  5.  
  6. foo.addEventListener("change", function(){
  7.     value = this.options[this.selectedIndex].innerHTML;
  8.     if ((index = options.indexOf(value)) > -1){
  9.         options.splice(index, 1);
  10.     }
  11.     else{
  12.         options.push(value);
  13.     }
  14. }, false);
  15.  
  16. bin.addEventListener("click", function(){
  17.     bar.value = options.join(", ");
  18. }, false);

El proceso es así. Tengo una lista múltiple, un botón y una caja de texto. En el código JS, tomo a los tres elementos y los asigno a variables, además, declaro un array y dos variables más que usaré después. Cuando elija un valor en la lista múltiple, tomo el valor de la opción seleccionada (o más bien, el texto que se muestra) y verifico si existe en el array que inicialmente declaré; de estar presente, lo elimino del mismo (del array, no de la lista), caso contrario, lo añado al array.

Finalmente, cuando pulse el botón, asigno a la caja el contenido del array unido por comas y espacios.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 20/11/2014, 16:24
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Pasar elementos de select multiple a input

Gracias amigo probe lo q me indicaste y no se mostro nada en el unput... además puedo hacerlo sin el boton es decir con onchange desde el select?????
  #5 (permalink)  
Antiguo 20/11/2014, 17:28
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Pasar elementos de select multiple a input

Por si alguien lo necesita
Código HTML:
<script type="text/javascript">
function PasarValor(elemento, sTargetId) {
    var arrValues = new Array();
    for (var i = 0; i < elemento.options.length; i++) {
        var Option = elemento.options[i];
        if (Option.selected)
            arrValues.push(Option.value);
    }
    document.getElementById(sTargetId).value = arrValues.join();
}


</script> 
  #6 (permalink)  
Antiguo 21/11/2014, 01:40
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Pasar elementos de select multiple a input

Cita:
Iniciado por Briss Ver Mensaje
Gracias amigo probe lo q me indicaste y no se mostro nada en el unput... además puedo hacerlo sin el boton es decir con onchange desde el select?????
Pues es extraño ya que lo probé antes de ponerlo por acá y no tenía problemas, de hecho, siempre pruebo todo lo que pongo por acá, pero, si encontrarte otra solución, pues, enhorabuena.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 21/11/2014 a las 02:15 Razón: Fe de erratas

Etiquetas: elementos, input, 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 16:58.