Foros del Web » Programando para Internet » Javascript »

validacion de campos

Estas en el tema de validacion de campos en el foro de Javascript en Foros del Web. Que tal amigos, tengo un problema que me esta matando les cuento : Tengo un formulario en que tengo 14 input de estos imput 7 ...
  #1 (permalink)  
Antiguo 20/04/2003, 23:13
 
Fecha de Ingreso: agosto-2002
Mensajes: 301
Antigüedad: 22 años, 3 meses
Puntos: 2
Pregunta validacion de campos

Que tal amigos, tengo un problema que me esta matando les cuento :

Tengo un formulario en que tengo 14 input de estos imput 7 se llaman "desde" y los otros 7 se llaman "hasta" (estan con el mismo nombre porque luego los proceso con asp) estos campos estan ordenados de la siguiente manera siete arriba y siete abajo (en una tabla) mi problema radica en que debo validar el primer input de nombre "desde" con el primer "hasta" osea ,el primer campo de arriba con el primer campo de abajo , donde ambos deben ser un formato de hora valido y "HASTA" debe ser mayor que "desde" y asi con los restantes.

Soy nuevo en javascript por eso hago esta pregunta

Gracias a todos
  #2 (permalink)  
Antiguo 21/04/2003, 01:38
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola vito_gris:

Si esos nombres solo son de los inputs, puedes crearte colecciones o arrays...

Prueba poner:

var losInputs = document.getElementsByTagName("input");
// así se crea la colección de inputs de la página

var losDesde = losInputs.getElementsByName("desde");
// lolección de los "desde"...

var losHasta = losInputs.getElementsByName("hasta");
// lolección de los "hasta"...

// por último el chequeo se podría hacer con un bucle...

var cuenta = 0;
do {
if (validar(losDesde[cuenta], losHasta[cuenta])) return false;
} while (++cuenta = losDesde.length)

return true; //se han validado correctamente se termina el bucle

// y la función validar, sería para algo así:

function validar(a, b) {
diaA = a.split(":"); // array con tres valores de la fecha
diaB = b.split(":"); // suponiendo que los datos esten separados por ":"

if (a[2] > b[2]) return false;
if (a[2] < b[2]) return true;
// segundo igual, comparamos minuto
if (a[1] > b[1]) return false;
if (a[1] < b[1]) return true;
// minuto igual comparamos hora
if (a[1] > b[1]) return false;
return true;
}

No lo he probado, pero espero que entiendas la teoría, así lo adaptas a ti caso concreto.

Saludos
  #3 (permalink)  
Antiguo 21/04/2003, 08:52
 
Fecha de Ingreso: agosto-2002
Mensajes: 301
Antigüedad: 22 años, 3 meses
Puntos: 2
gracias por tu ayuda lo voy aponer a prueba
  #4 (permalink)  
Antiguo 21/04/2003, 10:11
 
Fecha de Ingreso: agosto-2002
Mensajes: 301
Antigüedad: 22 años, 3 meses
Puntos: 2
Amigo la idea es buena pero no logro que funcione salen mensaje de error cuando creo los arreglos,(solo estoy probando la creacion de los arreglos)
  #5 (permalink)  
Antiguo 21/04/2003, 10:20
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola otra vez:

Es posible que me haya equivocado (es humano)...

Prueba sin poner el arreglo de losInputs, y directamente hacer los arreglos según el nombre (atributo name)

var losDesde = document.getElementsByName("desde");
// colección de los "desde"...

var losHasta = document.getElementsByName("hasta");
// colección de los "hasta"...

Fíjate que se generan desde "document" y no desde losInputs.
A simple vista, el resto está bien...

saludos
  #6 (permalink)  
Antiguo 21/04/2003, 11:09
 
Fecha de Ingreso: agosto-2002
Mensajes: 301
Antigüedad: 22 años, 3 meses
Puntos: 2
ok gracias voy a seguir probando
  #7 (permalink)  
Antiguo 21/04/2003, 12:14
 
Fecha de Ingreso: agosto-2002
Mensajes: 301
Antigüedad: 22 años, 3 meses
Puntos: 2
Bueno ya esta funcionando un poco mas, tengo dudas con
"while (++cuenta = losDesde.length)" ya que me cobra un error

Gracias
  #8 (permalink)  
Antiguo 21/04/2003, 16:12
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola otra vez:

Hot llevo un día cometiendo muchos errores, pero por suerte son muy fácil de resolver.

"while (++cuenta < losDesde.length)"

Aquí lo que hay que hacer es una comparación y no una asignación...

De todos modos te cuento la lógica, por si sigue fallando.

Si es el mismo número de elementos losDesde y losHasta, se podía hacer con cualquiera de los dos tamaños la comparación...
como son un array debe llegarse al final que equivale al tamaño (length) menos 1...

al poner ++ por delante de la variable cuenta, se le suma 1 antes de la comparación, o sea que al igualarse es cuando debería terminar el bucle. (Espero que no te siga fallando)

saludos
  #9 (permalink)  
Antiguo 22/04/2003, 08:28
 
Fecha de Ingreso: agosto-2002
Mensajes: 301
Antigüedad: 22 años, 3 meses
Puntos: 2
gracias, seguire con mis pruebas
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 18:34.