Foros del Web » Programando para Internet » Javascript »

juntar dos validaciones de form

Estas en el tema de juntar dos validaciones de form en el foro de Javascript en Foros del Web. buenas tardes gente... presiso me den una mano en esto... apenas me muevo con javascipt y tengo en este caso. dos validaciones de formulario... que ...
  #1 (permalink)  
Antiguo 06/02/2010, 14:26
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 8 meses
Puntos: 5
juntar dos validaciones de form

buenas tardes gente... presiso me den una mano en esto... apenas me muevo con javascipt y tengo en este caso. dos validaciones de formulario... que siempre las use una aparte de la otra. ahora las presiso juntas.. y no puedo ayar el modo de juntarlas..

porque me marcha una o la otra.. o no me valida todo como deberia..

esta es una

<script languaje="javascript">
function validarpass(form)

{
if (form.pass.value == form.pass1.value)
{alert("la repeticion de la contraseña no coincide.");}
else
{
alert("la repeticion de la contraseña no coincide.");
form.pass1.value = ""; form.pass1.focus(); return true;
}
}
</script>


y esta la otra


<script language="javascript" type="text/javascript">
function validacion(formulario) {

var er_nombre = /^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|\s|\.|-)+$/
var er_nick = /^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|\s|\.|-)+$/
var er_apellido = /^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|\s|\.|-)+$/ //letras, '.' y '-' o vacio
var er_telefono = /^([0-9\s\+\-])+$/ //numeros, espacios, + o -
//fechas, formato dd/mm/aaaa o d/m/aa
var er_mes31dias = /^([1-3]0|[0-2][1-9]|31|[0-9])\/(1|01|3|03|5|05|7|07|8|08|10|12)\/(1999|20[0-1][0-9]|2020)$/
var er_mes30dias = /^([1-3]0|[0-2][1-9]|[0-9])\/(4|04|6|06|9|09|11)\/(1999|20[0-1][0-9]|2020)$/
var er_mes28dias = /^([1-2]0|[0-2][1-8]|[0-1]9|[0-9])\/(02|2)\/(1999|200[1-3]|200[5-7]|2009|201[0-1]|201[3-5]|201[7-9])$/
var er_mes29dias = /^([1-2]0|[0-2][1-9]|[0-9])\/(02|2)\/(2000|2004|2008|2012|2016|2020)$/
//direccion de correo electronico
var er_email = /^(.+\@.+\..+)$/
var x

//comprueba 50 caracteres maximo
for(x = 1; x < 5; x++) {
if (formulario.elements[x].value.length > 50) {
alert('La lontitud máxima permitida para cualquier campo es de 20 caracteres.')
return false
}
}

//comprueba campo de nombre
if(!er_nombre.test(formulario.nombre.value)) {
alert('Contenido del campo NOMBRE no válido.')
return false
}
if(!er_nick.test(formulario.nick.value)) {
alert('Contenido del campo nick no válido.')
return false
}
if(!er_apellido.test(formulario.apellido.value)) {
alert('Contenido del campo Apellido no válido.')
return false

}

//comprueba campos de telefonos (permite campos vacios y guiones)
if( !er_telefono.test(formulario.telefono.value) ) {
alert('Contenido del campo TELEFONO no válido.')
return false
}

//comprueba la fecha segun calendario (hasta el 2020, ojo)
if (!(er_mes31dias.test(formulario.fechana.value) ||
er_mes30dias.test(formulario.fechana.value) ||
er_mes29dias.test(formulario.fechana.value) ||
er_mes28dias.test(formulario.fechana.value))) {
alert('Contenido del campo FECHA no válido.')
return false
}

//comprueba campo de email
if(!er_email.test(formulario.email.value)) {
alert('Contenido del campo E-MAIL no válido.')
return false
}




return true
}





</script>


presiso que ambas trabajen juntas. y no puedo lograrlo porque una me da problemas con la otra... para quien esta en javascript es facil.. para mi medio se me complica...


muchas gracias
  #2 (permalink)  
Antiguo 06/02/2010, 14:27
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 8 meses
Puntos: 5
Respuesta: juntar dos validaciones de form

perdon la del pass es asi

<script languaje="javascript">
function validarpass(form)

{
if (form.pass.value == form.pass1.value)
{form.submit();}
else
{
alert("la repeticion de la contraseña no coincide.");
form.pass1.value = ""; form.pass1.focus(); return true;
}
}
</script>


la idea es que ambas sean una y validen todos los campos como es devido

gracias nuevamente
  #3 (permalink)  
Antiguo 06/02/2010, 16:06
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: juntar dos validaciones de form

Hola:

Supongo que las validaciones son las "correctas", desde el tag form del estilo:

<form onsubmit="return validarf(this)"

Si es así, puedes usar el operador lógico and...

onsubmit="return (valida1(this) && valida2(this))"

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 06/02/2010, 16:27
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 8 meses
Puntos: 5
Respuesta: juntar dos validaciones de form

no... no me funciona. pues valida sin problema... pero si el todos los campos estan bien menos los de password. me avisa que el pass esta mal pero despues manda igual el form
  #5 (permalink)  
Antiguo 06/02/2010, 16:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: juntar dos validaciones de form

Hola:

No me había fijado en la corrección... y es que si usas el método submit() no haces la validación correctamente... creo que te lo comenté en otro mensaje...

Si no intentas hacerlo bien, solo recibirás respuestas "chapuceras"... apaños... pues, la respuesta, con una validación correcta es la que puse en el anterior mensaje... y te recuerdo la estructura de las validaciones (erre que erre):

<form onsubmit="return validar(this)"...

... y disculpame, pero me niego a dar respuestas chapuceras...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 06/02/2010, 16:46
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 8 meses
Puntos: 5
Respuesta: juntar dos validaciones de form

sinceramente...... no entendi nada de lo que me dijo... el hecho es que intente
onsubmit="(return validacion(this) && validar(this))" no me funciona... tal vez almenos eso creo yo que lo mejor es juntar ambos script en uno... pero no me sale. ya q no trabajan igual
  #7 (permalink)  
Antiguo 06/02/2010, 16:57
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: juntar dos validaciones de form

Hola:

Las funciones validadoras deben terminar con return true si pasa la validación y return false para cancelar el envío...

Lo que he visto que haces es forzar el submit con "form.submit()"... y esa línea impide cualquier formalización...

Una cosa que funcionaría es tan simple como "return form.pass1.value == form.pass2.value"... por eso insisto en hacer las cosas bien.

Creo que ya te he pasado un enlace de un artículo sobre formularios (entiendo que lamentablemente hay mucha porquería en la web que día a día es referenciada)...

Intenta cambiar la parte del pass y nos cuentas...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 06/02/2010, 17:05
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: juntar dos validaciones de form

Hola:

La referencia del artículo es esta: El abc de los formularios...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: dos, juntar, validar, formulario
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 01:42.