Foros del Web » Programando para Internet » Javascript »

Valida form + clave

Estas en el tema de Valida form + clave en el foro de Javascript en Foros del Web. Este es mi problema. Tengo un form para crear una cuenta con varios campos: nombre... edad... clave1.... clave 2.... utilizo el behaivor de Dreamweaver para ...
  #1 (permalink)  
Antiguo 19/01/2008, 21:39
 
Fecha de Ingreso: noviembre-2007
Mensajes: 118
Antigüedad: 16 años, 5 meses
Puntos: 0
Valida form + clave

Este es mi problema. Tengo un form para crear una cuenta con varios campos:

nombre... edad... clave1.... clave 2....

utilizo el behaivor de Dreamweaver para validar los campos del formulario, pero quiero modificarlo para que ademas compruebe que la clave 1 y la clave 2 son identicas...

He hecho algo asi:

en el boton submit:

<td width="78%"><div align="center"><input type="submit" onClick="MM_validateForm('name','','R','age','','R isNum','zip','','NisNum','phone','','RisNum','Emai l','','RisEmail','password','','R'); check(this.form);return document.MM_returnValue" value="Submit"/>

El la etiqueta de <form>

<form name="register" method="post" action="register.php" onSubmit="checkPW(this.form);>


En el javascript:

function MM_validateForm() { //v4.0
if (document.getElementById){
var i,p,q,nm,test,num,min,max,errors='',args=MM_valida teForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
}

function checkPW(form) {
pw1 = document.register.password.value;
pw2 = document.register.password1.value;
if (pw1 != pw2) {
alert ("You did not enter the same password twice. \n Please re-enter your password.")
return false;
}
else return true;
}

function MM_validateForm() funciona perfectamente, pero cuando comprueba si pw1 = pw2 y no coincide, no me funciona, es decir, deberia parar el envio y no saltar a register.php pero no lo para

alguien sabe que ocurre? o como puedo modificar function MM_validateForm() para que compruebe que password1 es igual a password2?

Última edición por vesvello; 20/01/2008 a las 00:42
  #2 (permalink)  
Antiguo 20/01/2008, 02:18
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Valida form + clave

Hola:

Te recomiendo no usar cosas DW porque lian las cosas mucho más de lo necesario... en tu caso concreto le falta el return a la validación del form, pero si pones más validaciones deben ser coherentes... siempre será mejor la que se hace en el envío "onsubmit"...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 20/01/2008, 03:08
 
Fecha de Ingreso: enero-2008
Ubicación: Sevilla
Mensajes: 22
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Valida form + clave

pienso lo mismo... es mucho mejor hacer un método javascript propio que se llame con el submit del formulario...

yo lo que suelo hacer es no poner input type=submit nunca, prefiero utilizar un botón y en su OnClick asignar un método que finalice (cuando todos los datos son correctos) con una sentencia document.<formulario>.submit();

Tal como está hecho creo que se puede formar un jaleo con los eventos... por un lado el onclick del botón llama un método y el onsubmit llama a otro...
  #4 (permalink)  
Antiguo 20/01/2008, 03:42
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Valida form + clave

Cita:
Iniciado por jaromero Ver Mensaje
pienso lo mismo... es mucho mejor hacer un método javascript propio que se llame con el submit del formulario...

yo lo que suelo hacer es no poner input type=submit nunca, prefiero utilizar un botón y en su OnClick asignar un método que finalice (cuando todos los datos son correctos) con una sentencia document.<formulario>.submit();

Tal como está hecho creo que se puede formar un jaleo con los eventos... por un lado el onclick del botón llama un método y el onsubmit llama a otro...
Hola:

No usar un botón submit tampoco es aconsejable. Ese formulario se considera inaccesible, ya que quien tenga javascript desactivado jamás podrá enviarlo, y todo visitante de nuestras páginas tiene derecho a configurar su navegador como le dé la gana.
Lo que suelo aconsejar es una doble validación, la más importante en el servidor, pero para agilizar la navegación de quienes usan javascript la validación en "local"... y como comenté antes con un botón submit...
La manera en mi opinión más aconsejable es con una estrucyura:
<form onsubmit="return validar(this)"...
<!-- controles aquí ----->
<button type="submit" >enviar</button>
</form>

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 23/01/2008, 01:57
 
Fecha de Ingreso: noviembre-2007
Mensajes: 118
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Valida form + clave

Soy nuevo en esto...


No usar un botón submit tampoco es aconsejable. Ese formulario se considera inaccesible, ya que quien tenga javascript desactivado jamás podrá enviarlo

por que no?


Lo que suelo aconsejar es una doble validación, la más importante en el servidor,

en el servidor como? en la misma pagina inegrada o en una pagina de confirmacion?
  #6 (permalink)  
Antiguo 23/01/2008, 08:31
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Valida form + clave

Hola:

La primera cuestión se responde sola si buscas información sobre accesibilidad. Existen navegadores sin soporte javascript... y otros que aún soportándolo, permiten "deshabilitarlo", y todos tenemos derecho de hacerlo (aunque nunca lo he fomentado)... en resúmen, sin un botón submit, jamás se enviará un formulario que solo se envíe con javascript en navegadores que no tengan javascript (¡elemental mi querido Watson!)

La segunda cuestión está casi contestada con el argumento anterior... sobre validar en el servidor, puse una "mijilla" en este artículo: El abc de las formularios... fíjate en la validación en el servidor.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 23/01/2008, 17:03
 
Fecha de Ingreso: noviembre-2007
Mensajes: 118
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Valida form + clave

La primera cuestión se responde sola si buscas información sobre accesibilidad. Existen navegadores sin soporte javascript... y otros que aún soportándolo, permiten "deshabilitarlo", y todos tenemos derecho de hacerlo (aunque nunca lo he fomentado)... en resúmen, sin un botón submit, jamás se enviará un formulario que solo se envíe con javascript en navegadores que no tengan javascript (¡elemental mi querido Watson!)


Disculpa mi ignoracia y mi confusion... pero en mi form yo tengo el boton submit con lo cual no tendria este problema, verdad?



La segunda cuestión está casi contestada con el argumento anterior... sobre validar en el servidor, puse una "mijilla" en este artículo:


En cuanto a la segunda cuestion: muy interesante tu articulo, peor volviendo al caso concreto... tu consejo es ademas de poner un script para validar mediante javascript (aunke sea el de dreamweaver) y otro en el servidor... para aquellos que tenga deshabilitado el java...

me perdi un poco en tu articulo porque no entendi muy bien lo del isset y todo eso... soy nuevo en Javascript... y mucho mas en PHP... pero imagino que podria ser algo asi como
if (!empty ( $_POST['name'])){
print '<p> no olvides poner tu nombre.</p>';
}

Y como hago para volver a la pagina anterior???

Gracias de antemano
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 22:49.