Foros del Web » Programando para Internet » Javascript »

Problema,valida campos y aún cuando hay error envìa la consulta

Estas en el tema de Problema,valida campos y aún cuando hay error envìa la consulta en el foro de Javascript en Foros del Web. Cuando valido una forma con javascript y descubre algùn campo vacío se envía la forma, ¿por que pasa esto? Código PHP: < head > < ...
  #1 (permalink)  
Antiguo 23/04/2007, 22:22
 
Fecha de Ingreso: marzo-2007
Mensajes: 49
Antigüedad: 17 años, 2 meses
Puntos: 0
Pregunta Problema,valida campos y aún cuando hay error envìa la consulta

Cuando valido una forma con javascript y descubre algùn campo vacío se envía la forma, ¿por que pasa esto?

Código PHP:

<head>

<
title>.::Registro de Personal::.</title>
</
head>

<!--
#include file="conecta.asp"-->
<body>


<
script language="javascript">

function 
valida()
{
    
    if(
document.registro.nombre.value ==''){
    
alert("Por favor introduzca el nombre del empleado.");
    
document.registro.nombre.focus();
    return; }
    
    if(
document.registro.apellidos.value ==''){
    
alert("Por favor introduzca los apellidos del empleado.");
    
document.registro.empleado.focus();
    return; }    
    
    
    if(
document.registro.usuario.value == ''){
    
alert("Por favor introduzca un nombre de usuario.");
    
document.registro.correo.focus();
    return; }    
    
        
    if(
document.registro.correo.value == ''){
    
alert("Por favor introduzca el email de la persona a registrar.");
    
document.registro.correo.focus();
    return; }
    
    if ((
document.registro.correo.value.indexOf ('@'0) == -1)||(document.registro.correo.value.length 5)||(document.registro.        correo.value.indexOf ('.'6) == -1)){ 
    
alert("Por favor, introduzca una dirección de correo electrónico válida."); 
    
document.registro.correo.focus();
    return (
false); }     
    
    if (
document.registro.password.value=='') {
         
alert('Es necesario escribir su contraseña, verifique');
         return 
false;  }
    
    if (
document.registro.password.value!=document.registro.password2.value) {
    
alert('La contraseña y la confirmación no coinciden, verifique');
    return 
false;  }

    if (
document.registro.password2.value.length<=5) {
    
alert('La contraseña debe contener al menos 6 caracteres, verifique');
    return 
false;  }
    
    
document.registro.submit();

}

</script>

 <%
     'set dbconn = server.createobject("ADODB.Connection")
    'dbconn.open 
 

nombre = request.form ("nombre")
apellidos = request.form ("apellidos")
area = request.form ("area")
ext = request.form ("ext")
correo = request.form ("correo")
usuario = request.form ("usuario")
password = request.form ("password")


sql = "INSERT INTO usuarios_area (nombre,apellidos,area,extencion,correo,usuario,password) values ('"& nombre &"','"& apellidos &"','"& area &"','"& ext &"','"& correo &"','"& usuario&"','"& password &"')"
 
 conn.execute (sql)

    response.Write("Se han ingresado correctamente los datos")
'    dbconnn.close
 %>






<form name="registro" method="post" action="registro_personal.asp">
  <table width="775" border="0" align="center" cellpadding="5" cellspacing="5">
    <tr>
      <td><table width="775" border="0" cellpadding="3" cellspacing="3">
        <tr>
          <td width="268">Nombre</td>
          <td width="486"><label>
            <input type="text" name="nombre" />
          </label></td>
        </tr>
        <tr>
          <td>Apellidos</td>
          <td><input type="text" name="apellidos" /></td>
        </tr>
        <tr>
          <td>Area de adscripci&oacute;n </td>
          <td><input type="text" name="area" /></td>
        </tr>
        <tr>
          <td>Extenci&oacute;n</td>
          <td><input type="text" name="ext" /></td>
        </tr>
        <tr>
          <td>Correo</td>
          <td><input type="text" name="correo" /></td>
        </tr>
        <tr>
          <td>Usuario*</td>
          <td><input type="text" name="usuario" /></td>
        </tr>
        <tr>
          <td>Password</td>
          <td><input type="text" name="password" /></td>
        </tr>
        <tr>
          <td>Confirmar Password </td>
          <td><input type="text" name="password2" /></td>
        </tr>
        <tr>
          <td>Tipo de usuario</td>
          <td><table width="237" border="0">
            <tr>
              <td width="86">Administrador</td>
              <td width="40"><label>
                <input type="checkbox" name="a1" value="checkbox" />
              </label></td>
              <td width="58">Bitacora</td>
              <td width="35"><input type="checkbox" name="b1" value="checkbox" /></td>
            </tr>
            
          </table></td>
        </tr>
        <tr>
          <td height="25">&nbsp;</td>
          <td><label>
            <input type="submit" name="Enviar" onClick="Javascript:valida();" value="Submit" />
            <input type="reset" name="Borrar" value="Reset" />
          </label></td>
        </tr>
      </table></td>
    </tr>
  </table>
</form>


</body>
</html> 
  #2 (permalink)  
Antiguo 24/04/2007, 03:43
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 3 meses
Puntos: 7
Re: Problema,valida campos y aún cuando hay error envìa la consulta

Cambia esto:

<input type="submit" name="Enviar" onClick="javascript:valida();" value="Submit" />

Por esto

<input type="button" name="Enviar" onClick="javascript:valida();" value="Submit" />

Te dejo a ti el preguntarte el porqué



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #3 (permalink)  
Antiguo 24/04/2007, 09:02
 
Fecha de Ingreso: marzo-2007
Mensajes: 49
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Problema,valida campos y aún cuando hay error envìa la consulta

Muchas gracias, ahora por lo que veo es que no puedo tener el valor "Submit" y el tipo de boton como "submit" ya que sería redundante para la aplicación javascript. Cierto? De nuevo gracias
  #4 (permalink)  
Antiguo 24/04/2007, 09:33
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 3 meses
Puntos: 7
Re: Problema,valida campos y aún cuando hay error envìa la consulta

Es el tipo no el valor. El valor en un boton solo sirve para poner un texto al boton. Si te fijas en tu funcion, al final haces un submit al formulario. Un boton tipo submit envia el formulario si o si. Seria como decirle al navegador que, aunque ejecutes la funcion, envialo de todas formas


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #5 (permalink)  
Antiguo 24/04/2007, 10:24
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Re: Problema,valida campos y aún cuando hay error envìa la consulta

Cita:
Iniciado por tammander Ver Mensaje
Cambia esto:

<input type="submit" name="Enviar" onClick="javascript:valida();" value="Submit" />

Por esto

<input type="button" name="Enviar" onClick="javascript:valida();" value="Submit" />

Te dejo a ti el preguntarte el porqué



Un saludo
Me parece mejor dejar el input type="submit" y agregar ésto a la etiqueta <form> (además de hacer también las validaciones en el servidor):

Código:
<form name="registro" method="post" action="registro_personal.asp" onsubmit="javascript:valida(); return false;">

Y les digo el por qué:
¿Qué ocurre si el navegador del usuario no acepta javascript o lo tiene deshabilitado? Al existir un botón submit y al no comprender el return false, el submit igualmente se producirá. Ok, no tenemos validación en el cliente... pero siempre tenemos la validación en el servidor y todos contentos

Saludos

EDIT: Ouch! olvidé trasladarlo al foro javascript
__________________
...___...

Última edición por AlZuwaga; 24/04/2007 a las 11:10
  #6 (permalink)  
Antiguo 24/04/2007, 13:14
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 3 meses
Puntos: 7
Re: Problema,valida campos y aún cuando hay error envìa la consulta

Sip. Esta era la otra forma igualmente válida. Quizás más efectiva pero dependerá de la política que lleves para introducir datos, al_zuwaga ;)


Un saludete
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
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 08:02.