Autor Tema: [D] validación en JS  (Leído 1331 veces)

Desconectado danielo

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 1
    • Ver Perfil
[D] validación en JS
« en: 03 de Junio de 2007, 13:30:02 pm »
Hola buenas!! a ver si me podéis ayudar...  ::) Os explico:

he creado un formulario en el cual he de validar sus campos con JavaScript. En TODOS estos campos sólo quiero comprobar que se introduce un numero (entero y positivo, para ser más exactos). Lo he conseguido hacer  ;D y funciona bien, el problema está en que en mi opinión el código que he creado es un poco... cutre o chapucero (pero funcionar ya he dicho que funciona). El código es el siguiente:

Código: [Seleccionar]
function valUsers(form)
{
    var er_numero = /(^([0-9]{0,3})|^)$/ //número de máximo 3 digitos o cadena vacia
   
    if(!er_numero.test(form.userA.value)) {
alert('Contenido del campo "Usuarios A" no válido.')
return (false);
    }
   
    if(!er_numero.test(form.userB.value)) {
     alert('Contenido del campo "Usuarios B" no válido.')
     return (false);
    }

    if(!er_numero.test(form.userC.value)) {
     alert('Contenido del campo "Usuarios C" no válido.')
     return (false);
    }   

    if(!er_numero.test(form.userD.value)) {
alert('Contenido del campo "Usuarios D" no válido.')
return (false);
    }
}

Como he dicho esto funciona. Pero como podéis ver se hace la misma comprobación 4 veces. Y en realidad son más de 4 porque aquí he reducido el código. Entonces a mi se me ha ocurrido crear una cadena, introducir todos los valores que quiero comprobar en ella, y recorrer esa cadena con un bucle "for" para hacer la validación. Algo así:

Código: [Seleccionar]
//Declaro la cadena, la he probado de estas 2 maneras y ninguna funciona:
    //cadena = new Array(userA, userB, userC, userD);
    //var cadena = [userA, userB, userC, userD];

    for (i=0; i<4; i++) {
if(!er_numero.test(form.cadena[i].value)) {
   alert('Contenido del campo cadena[i] no válido.')
           return (false);
    }   

Qué hago mal en la declaración de la cadena y el bucle FOR?? o como puedo hacer la comprobación de otra manera para evitar tantas sentencias IF??

Saludos y gracias!!

Comunidad PHPeros

[D] validación en JS
« en: 03 de Junio de 2007, 13:30:02 pm »

Desconectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: [D] validación en JS
« Respuesta #1 en: 03 de Junio de 2007, 20:43:56 pm »
En javascript las matrices se definen mediante () por lo tanto no podrias llamar a los campos del formulario user(0), user(1)....

tienes que llamarlo obligatoriamente userA, userB, user....?
Por favor, leete las Normas


Desconectado danielo

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 1
    • Ver Perfil
Re: [D] validación en JS
« Respuesta #2 en: 04 de Junio de 2007, 00:22:42 am »
cómo naveda?? No te entiendo  ???

Dices que a los campos del formulario les cambie los nombres??

Desconectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: [D] validación en JS
« Respuesta #3 en: 04 de Junio de 2007, 11:24:05 am »
Efectivamente, veo que has llamado a los campo userA, userB, userC... ¿Por qué no los llamas user(0), user(1), etc...
Con esto evitarás muchos problemas ;)
Por favor, leete las Normas


Desconectado danielo

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 1
    • Ver Perfil
Re: [D] validación en JS
« Respuesta #4 en: 04 de Junio de 2007, 12:02:48 pm »
Pero... con eso qué gano?? se puede llamarles a los campos user(0), user(1), etc... con paréntesis "( )" y no pasa nada??

Y si los llamo así (que ahora mismo lo pruebo), cómo hago para hacer que mi comprobación sea más eficiente en vez de usar todas las sentencias IF??

Y cuando dices que con eso evitaré muchos problemas, qué otros problemas puedo tener??

Desconectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: [D] validación en JS
« Respuesta #5 en: 04 de Junio de 2007, 13:52:58 pm »
En javascript las matrices se definen usando () por lo tanto estas creando una matriz a la que puedes acceder haciendo un bucle, recuerda que javascript no tiene la misma sintaxis que php...
Por favor, leete las Normas


Desconectado danielo

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 1
    • Ver Perfil
Re: [D] validación en JS
« Respuesta #6 en: 04 de Junio de 2007, 18:43:29 pm »
si yo llamo a los campos del formulario user(0), user(1), etc. después como hago la comprobación??
xq esto no funciona:

Código: [Seleccionar]
var er_numero = /(^([0-9]{0,3})|^)$/ //número de máximo 3 digitos o cadena vacia
   
    if(!er_numero.test(form.user(0).value)) {
alert('Contenido del campo "Usuarios A" no válido.')
return (false);
    }

Y si le doy un nombre al campo sin los paréntesis, userA, sí que funcionaba.

 ??? ??? ???
« Última modificación: 04 de Junio de 2007, 18:46:10 pm por danielo »

Desconectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: [D] validación en JS
« Respuesta #7 en: 04 de Junio de 2007, 20:33:33 pm »
mmm prueba ha llamarlos user[0]... a ver si tienes suerte :S
Por favor, leete las Normas


Desconectado danielo

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 1
    • Ver Perfil
Re: [D] validación en JS
« Respuesta #8 en: 05 de Junio de 2007, 12:30:02 pm »
no funciona...  :-\

nadie sabe como hacerlo??