Foros del Web » Programando para Internet » Javascript »

Comprobar si exsite una opcion en un combo

Estas en el tema de Comprobar si exsite una opcion en un combo en el foro de Javascript en Foros del Web. Buenas, la idea es que tengo dos combos de selección multiple y quiero pasar unos campos del primero al segundo, para lo cual, me gustaría ...
  #1 (permalink)  
Antiguo 31/03/2007, 10:18
 
Fecha de Ingreso: enero-2007
Mensajes: 19
Antigüedad: 17 años, 3 meses
Puntos: 0
Comprobar si exsite una opcion en un combo

Buenas,

la idea es que tengo dos combos de selección multiple y quiero pasar unos campos del primero al segundo, para lo cual, me gustaría comprobar por cada elemento seleccionado en el primero, si éste existe en el segundo antes de insertarlo para que no haya valores duplicados.

El tema es que no se acceder dentro del array de options por valor para sacar si existe el índice de una forma automática. Es esto posible? Se puede hacer con la propiedad index?

Gracias a todos.

R.
  #2 (permalink)  
Antiguo 31/03/2007, 10:30
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Comprobar si exsite una opcion en un combo

Hola Okada

Prueba este código:

Código:
  sel = document.nombreFormu.nombreSelect;
  for (i=0; opt = sel.options[i]; i++)
    if (opt.value=='algo')
      alert('Existo');
Saludos,
  #3 (permalink)  
Antiguo 31/03/2007, 10:32
 
Fecha de Ingreso: enero-2007
Mensajes: 19
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Comprobar si exsite una opcion en un combo

Cita:
Iniciado por JavierB Ver Mensaje
Hola Okada

Prueba este código:

Código:
  sel = document.nombreFormu.nombreSelect;
  for (i=0; opt = sel.options[i]; i++)
    if (opt.value=='algo')
      alert('Existo');
Saludos,
Gracias. Por lo que veo no hay una opción del estilo indexOf, no?
  #4 (permalink)  
Antiguo 31/03/2007, 16:53
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Comprobar si exsite una opcion en un combo

No no hay ninguna función para buscar en los options de un select. No hay ni siquiera para buscar dentro de un array...

A los de javascript nos toca trabajar un poco más (aunque a estas alturas todo está requete fabricado, eh?)
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 07/04/2007, 07:26
 
Fecha de Ingreso: enero-2007
Mensajes: 19
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Comprobar si exsite una opcion en un combo

Retomo el hilo:

function copiarSelec(idOrigen, idDestino){
var selecOrigen = document.getElementById(idOrigen);
var selecDestino = document.getElementById(idDestino);
while (selecOrigen.selectedIndex >= 0){
var seleccionado = selecOrigen.options[selecOrigen.selectedIndex].value;
var encontrado = false;
var i = 0;

while ((!encontrado) && (i < selecDestino.options.length)){
alert("entrooo");
if (selecDestino.options[i].value == seleccionado){
encontrado = true;
}
i++;
}
if (!encontrado){
alert("copioooo");
selecDestino.options[selecDestino.options.length].value=seleccionado;
}
selecOrigen.options[selecOrigen.selectedIndex].selected=false;
}



Aparentemente todo debería ir bien, el problema que tengo es que cuando el combo de destino está vacío, al intentar agregar las nuevas opciones seleccionadas, el objeto es null.

selecDestino.options[selecDestino.options.length].value=seleccionado;

No se cómo subsanar esto, ayuda??

Obrigado!
  #6 (permalink)  
Antiguo 07/04/2007, 17:22
 
Fecha de Ingreso: enero-2007
Mensajes: 19
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Comprobar si exsite una opcion en un combo

Por si alguno se encontraba en mi mismo problema:

var selOpcion=new Option(seleccionado, seleccionado);
selecDestino.options[selecDestino.options.length]=selOpcion;

esta es una solución. :)
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 15:35.