Foros del Web » Programando para Internet » Javascript »

Validacion de elementos repetidos en un select

Estas en el tema de Validacion de elementos repetidos en un select en el foro de Javascript en Foros del Web. Saludos... Bueno vamos al grano... Amigos, tengo en un formulario un text(fecha1), el cual pasa sus elementos a un select(Afechas) mediante un boton... Esta insercion ...
  #1 (permalink)  
Antiguo 13/04/2012, 13:55
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años
Puntos: 0
Validacion de elementos repetidos en un select

Saludos...

Bueno vamos al grano...

Amigos, tengo en un formulario un text(fecha1), el cual pasa sus elementos a un select(Afechas) mediante un boton...

Esta insercion la realizo con una funcion... funciona... el problema que tengo es cuando quiero validar para que no se repitan los elementos ingresados...

En el siguiente codigo esta para que inserte sin validar... ahi funciona...

Código Javascript:
Ver original
  1. function agregarfecha()
  2.             {
  3.               var    emisor = document.getElementById("fecha1").value;
  4.               var    receptor = document.getElementById("Afechas");
  5.               var x;
  6.               var a;
  7.               posicion = receptor.options.length;
  8.              
  9.              receptor.options[posicion] = new Option(emisor, emisor);
  10.             }

Para la validacion utilizo un ciclo for comparando cada elemento del select con el elemento del text... realiza las comparaciones pero al momento de salir del for no inserta...


Código Javascript:
Ver original
  1. function agregarfecha()
  2.             {
  3.               var    emisor = document.getElementById("fecha1").value;
  4.               var    receptor = document.getElementById("Afechas");
  5.               var x;
  6.               var a;
  7.               posicion = receptor.options.length;
  8.              
  9.                for(x=0; x <= posicion; x++)
  10.                {
  11.                  a=receptor.options[x].text;
  12.                  
  13.                 if(emisor==a)
  14.                     {
  15.                         alert("Esta fecha ya esta ingresada !!!");
  16.                
  17.                     return;
  18.                        
  19.                     }
  20.                 }
  21.                      
  22.              receptor.options[posicion] = new Option(emisor, emisor);
  23.             }


Como ven en el codigo el problema esta en que no me agrega cuando el elemento es distinto...

Agradecido de antemano espero su ayuda.

Saludos cordiales.
  #2 (permalink)  
Antiguo 13/04/2012, 18:31
 
Fecha de Ingreso: julio-2011
Mensajes: 220
Antigüedad: 12 años, 9 meses
Puntos: 72
Respuesta: Validacion de elementos repetidos en un select

El problema esta en el for.

for(x=0; x <= posicion; x++)

Lo que sucede es que el bucle esta iterando una vez de mas y al no encontrar ningun elemento deja de ejecutar el resto de la función. De esta forma debe funcionar.

for(x=0; x < posicion; x++)
  #3 (permalink)  
Antiguo 16/04/2012, 20:32
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años
Puntos: 0
Respuesta: Validacion de elementos repetidos en un select

Cita:
Iniciado por lubtufano Ver Mensaje
El problema esta en el for.

for(x=0; x <= posicion; x++)

Lo que sucede es que el bucle esta iterando una vez de mas y al no encontrar ningun elemento deja de ejecutar el resto de la función. De esta forma debe funcionar.

for(x=0; x < posicion; x++)
Hermano muchas gracias... me sirvio tu ayuda.
  #4 (permalink)  
Antiguo 16/04/2012, 20:47
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años
Puntos: 0
Respuesta: Validacion de elementos repetidos en un select

He encontrado la solucion a mi problema... muy agradecido... pueden cerrar este hilo. Gracias :)

Etiquetas: elementos, formulario, funcion, repetidos, select, botones
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:42.