Foros del Web » Programando para Internet » Javascript »

Validacion de campos : 1 Boton typo Imagen 2 Bot submit

Estas en el tema de Validacion de campos : 1 Boton typo Imagen 2 Bot submit en el foro de Javascript en Foros del Web. Ante todo buenas tardes, espero que me echen un cable con el siguiente problema Tengo un problema con este form: Código HTML: <form name= "frm_acceso" ...
  #1 (permalink)  
Antiguo 07/07/2007, 15:52
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 19 años, 8 meses
Puntos: 1
Validacion de campos : 1 Boton typo Imagen 2 Bot submit

Ante todo buenas tardes, espero que me echen un cable con el siguiente problema

Tengo un problema con este form:

Código HTML:
<form name="frm_acceso" action="javascript:valida_usuario_clave()" method="post">

  Usuario:<input type="text" name="txt_usuario">
  Clave <input type="password" name="txt_clave">
		
  <input type="image" value="enviar_Datos" name="login" src="Imagenes/boton_validar.gif" >
	
  <input type="submit" name="recuperar_clave" value="Recup. clave"  onClick="cliente_recordar_clave()">
  <input type="submit" name="registrarse"	value="Regístrese" onClick="cliente_registro()">
</form> 
FUNCIONES

1.- Funcion valida_usuario_clave() para validar los datos del cliente.

Código:
function valida_usuario_clave(){

 with(document.frm_acceso)
	{
	if(txt_usuario.value == ""){ // Falta Nombre
	alert('¡Ingrese Nombre de Usuario'); txt_usuario.focus(); 		return ; }
					
	if(txt_clave.value == ""){ // Falta Nombre
	alert('¡Ingrese Clave del Usuario'); txt_clave.focus();			return; }

	action="Clientes/user_ok.php";
	submit();
 }
}

2.- Funcion cliente_recordar_clave() que se habre el popup y me muestra una pantalla para que el cliente ingrse su email.

Código:
function cliente_recordar_clave() { 
	window.open('Clientes/olvido_clave.php','','width=600,height=260,scrollbars=no,resizable=no,status=yes,menubar=no,location=no');
   }
3.- funcion cliente_registro() que manda a una pagina para el registro

function cliente_registro(){
with(document.frm_acceso)
{
action="Clientes/registro_nuevo_cliente.php";
submit();
}
}


Cual es el problema ???

Cuando presiono en el boton de la segunda funcion cliente_recordar_clave() se va a mi codigo javascript(que esta en lineas anteriores) y me dirije al popup, PERO automaticamente me salta el mensaje que me dice que tengo que ingresar el usuario(pero si yo he presionado sobre el boton recordar clave....!!!). Como lo puedo solucionar esto ????


y en la tercera funcion si me dirije a la pagina que quiero, es decir, a:
registro_nuevo_cliente.php (AQUI NO HAY PROBLEMA)

Cuando los campos estan vacios y presiono sobre la imagen me valida correctamente, es decir no se dirije a la pagina user_ok.php, hasta que el cliente escriba algo (solo para efectos de probar, luego verifico si ese usuario esta en la tablas de clientes)

Espero que me haya explicado bien, y haber si me pueden ayudar con este problema.

Saludos a todos.
  #2 (permalink)  
Antiguo 08/07/2007, 19:19
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Validacion de campos : 1 Boton typo Imagen 2 Bot submit

Hola:

Bueno, tiene lógica, contando que
Código PHP:
<input type="submit" name="recuperar_clave" value="Recup. clave"  onClick="cliente_recordar_clave()"
El botón de recuperar clave es de tipo submit, y que el action es un javascript:. Luego se ejecuta el action (porque se hace submit) y el onclick del botón también. Éste botón no debería ser de tipo submit.

Deberías re-estructurar tu manera de validar el formulario. La forma correcta y usable de hacerlo, es poniendo en el action siempre un documento, no un javascript:. Además este "protocolo" está en desuso, y no recomendado.

Sería mas bien:
Código PHP:
<form name="frm_acceso" action="Clientes/user_ok.php" method="post" onsubmit="return valida_usuario_clave();"
Y en la función valida_usuario_clave() debes retornar siempre un true (continuamos con el submit) o un false (paramos y no hacemos el submit).
Así aunque tengamos javascript deshabilitado podremos hacer submit. Y la validación en serio debe hacerse de lado del servidor.



Y recuerda que en xhtml todas las etiquetas van cerradas (<input />) y que los atributos van en minúscula (onClick = onclick).



Ya verás como así está mejor.

Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 06:21.