Foros del Web » Programando para Internet » Javascript »

Problema con mi funcion checkForm()

Estas en el tema de Problema con mi funcion checkForm() en el foro de Javascript en Foros del Web. Hola foreros desde ya las gracias por tomarce el tiempo en leer este tema y darme unas sugerencias estoy utilizando Appserv y Win XP Esta ...
  #1 (permalink)  
Antiguo 30/12/2008, 11:59
Avatar de Enishy  
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 16 años, 7 meses
Puntos: 1
Problema con mi funcion checkForm()

Hola foreros desde ya las gracias por tomarce el tiempo en leer este tema y darme unas sugerencias estoy utilizando Appserv y Win XP

Esta es mi Funcion que utilizo para registrar Usuarios probandola cumple con las restricciones que tiene que realizar como:

1>>No enviar si la clave y su confirmacion son diferentes
2>>No enviar si el usuario y la clave son iguales
3>>No enviar si el usuario o clave estan en blanco

Si todo va bien en tonces los datos ingresados se guardan en la BD por ejemplo si el usuario coloca :

Usuario : marco
Contraseña : qwerty
Repite Contraseña : qwerty

El problema es que no puedo enviar mi datos a la BD y me manda a la restriccion 2 lo que no entiendo pues esta restriccion se cumple si el usuario y la clave son iguales lo que no es asi pues en el ejemplo como se observa son diferentes eh tratado y tratado pero no doy con la solucion y recurro a ustedes

Código:
<script language="JavaScript" type="text/javascript">
function checkForm() {
usuario = document.getElementById("usuario").value;
clave = document.getElementById("clave").value;
reclave = document.getElementById("reclave").value;
	if(reclave != clave) {
	hideAllErrors(); 
	document.getElementById("reclaveError").style.display = "inline";
	document.getElementById("reclave").select();
	document.getElementById("reclave").focus();
  	return false;
  	} else if (clave = usuario) {
	hideAllErrors(); 
	document.getElementById("claveError").style.display = "inline";
	document.getElementById("clave").select();
	document.getElementById("clave").focus();
  	return false;
  	} else if (usuario == "" || clave == "") {
	hideAllErrors(); 
	document.getElementById("usuarioError").style.display = "inline";
	document.getElementById("usuario").select();
	document.getElementById("usuario").focus();
  	return false;
  	} else {
	form.submit();
	return true;
	}
}
function hideAllErrors() {
	document.getElementById("claveError").style.display = "none"
	document.getElementById("usuarioError").style.display = "none"
	document.getElementById("reclaveError").style.display = "none"
}
</script>
Código HTML:
<body>
<form onSubmit="return checkForm();" action="saveUsers.php" method="post">
<table cellpadding="3" cellspacing="1" border="0" align="center">
<tr>
<td align="right"><strong>Usuario:</strong></td>
<td><input type=text size="30" name="register_username" id="usuario" style="border: 1px solid #7F9DB7;">&nbsp;<font color="#FF0000">*</font></td>
<div class=error id=usuarioError>Alerta...Falta introducir usuario o contraseña <br></div> <br>
</tr>
<tr>
<td align="right"><strong>Tipo Usuario:</strong></td>
<td><input disabled value="User" type=text size="30" name="type_user" style="border: 1px solid #7F9DB7;">&nbsp;<font color="#FF0000">*</font></td>
<td><input value="User" type="hidden" name="type_user"></td>
</tr>	
<tr>
<td align="right"><strong>Contraseña:</strong></td>
<td><input type=password size="30" name="register_password" id="clave" style="border: 1px solid #7F9DB7;">&nbsp;<font color="#FF0000">*</font></td>
<div class=error id=claveError>Alerta...La contraseña no puede ser igual al nombre de usuario.<br></div> <br>
</tr>
<tr>
<td align="right"><strong>Repite Contraseña:</strong></td>
<td><input type=password size="30" name="register_password1" id="reclave" style="border: 1px solid #7F9DB7;">&nbsp;<font color="#FF0000">*</font></td>
<div class=error id=reclaveError>Alerta...La repetición de la contraseña no coincide.<br></div> <br>
</tr>
<tr>
<td><input value="Registrarse" type="submit"></td>
<td><a href='Maintenance.php'><img src='../../images/app_utilities.png' width='32' height='32' border="0" align='absmiddle'>Retornar Mantenimiento</a></td>
</tr>
</table><br />
</form>
</body> 
  #2 (permalink)  
Antiguo 30/12/2008, 12:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con mi funcion checkForm()

Tema trasladado a Javascript.
  #3 (permalink)  
Antiguo 30/12/2008, 16:04
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: Problema con mi funcion checkForm()

Hola:

Según parece no haces una comparación sino una asignación...

Código:
...else if (clave == usuario) {
Cuando pones form.submit() haces un envío forzado, que en este caso se puede obviar, porque el return true que pones luego (y que también podrías obviar) confirma ese envío.

Podrías simplificar bastante la validación si pasas el propio formulario como parámetro en la función validadora... te paso un artículo que puede ayudarte: El abc de los formularios

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 01/01/2009, 16:27
Avatar de Enishy  
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Problema con mi funcion checkForm()

hola caricatos...probe lo que me sugieres y si guarda los datos en la BD pero sin respetar la restriccion 2 pues cuando voy a checar la tabla el usuario y la clave son iguales y no puede ser asi.... entonces sigo con lo mismo como te cuento
  #5 (permalink)  
Antiguo 01/01/2009, 16:39
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: Problema con mi funcion checkForm()

Hola:

Es que pensaba que esa asignación era una comparación de igualdad "=="... para desigualdad veo que ya lo sabes: "!="

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 03:25.