Foros del Web » Programando para Internet » Javascript »

Fallo en Validación de Formulario

Estas en el tema de Fallo en Validación de Formulario en el foro de Javascript en Foros del Web. Hola a tod@s, tengo un formulario y antes de enviarlo quiero validar tres cosas, por una parte que el campo usuario y usuario2 coincidan entre ...
  #1 (permalink)  
Antiguo 01/02/2007, 03:26
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 5 meses
Puntos: 8
Fallo en Validación de Formulario

Hola a tod@s, tengo un formulario y antes de enviarlo quiero validar tres cosas, por una parte que el campo usuario y usuario2 coincidan entre ellos; lo mismo para los campos password y password2; y por último, que todos los campos excepto el check Servicios, tengan algun valor. Lo he hecho de la siguiente manera, pero no funciona bien, con rellenar algun campo, ya envia el formulario y pasa de comprobar los demás o que los dos campos mencionados antes coincidan.

Código PHP:
<head>
<
script language="javascript">
/*function validar(frm) {
 return (frm.email.value == frm.email2.value && frm.clave.value == frm.clave2.value);
}*/
function validar(frm) {
  if (
frm.empresa.value == "" || frm.cifempresa.value == "" || frm.usuario.value == "" || frm.usuario2.value == "" || frm.nombre.value == "" || frm.apellidos.value == "" || frm.telefono.value == "" || frm.password.value == "" || frm.password2.value == "") {
   
alert('Por favor, rellene todos los campos');
   return 
false;
 }
 if (
frm.usuario.value != frm.usuario2.value || frm.password.value != frm.password2.value) {
   
alert('Por favor, revise el email o la clave. No coinciden con el campo de verificacion');
   return 
false;
 }
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body background="../Imagenes/fondoweb.jpg">
<p><font size="2"><b><font face="Arial, Helvetica, sans-serif">Registro de Usuarios</font></b></font></p>
<p><font size="2" face="Arial, Helvetica, sans-serif">Por favor, rellene los siguientes campos para proceder al registro:</font></p>
<form id="form1" name="form1" method="post" action="registro2.asp" onsubmit="return validar(this)">
  <table width="100%" border="1" cellspacing="0" cellpadding="0">
    <tr>
      <td width="27%"><b><font size="2" face="Arial, Helvetica, sans-serif">Empresa</font></b></td>
      <td width="73%"><input name="empresa" type="text" id="empresa" /></td>
    </tr>
    <tr>
      <td><b><font size="2" face="Arial, Helvetica, sans-serif">CIF</font></b></td>
      <td><input name="cifEmpresa" type="text" id="cifEmpresa" /></td>
    </tr>
    <tr>
      <td><b><font size="2" face="Arial, Helvetica, sans-serif">Email</font></b></td>
      <td><input name="usuario" type="text" id="usuario" /> 
        <b><font size="1" face="Arial, Helvetica, sans-serif">*este ser&aacute; su nombre de usuario</font> </b></td>
    </tr>
    <tr>
      <td><b><font size="2" face="Arial, Helvetica, sans-serif">Valide el Email </font></b></td>
      <td><input name="usuario2" type="text" id="usuario2" />
      <b><font size="1" face="Arial, Helvetica, sans-serif">*debe coincidir con el campo anterior </font></b></td>
    </tr>
    <tr>
      <td><b><font size="2" face="Arial, Helvetica, sans-serif">Nombre  </font></b></td>
      <td><input name="nombre" type="text" id="nombre" /></td>
    </tr>
    <tr>
      <td><b><font size="2" face="Arial, Helvetica, sans-serif">Apellidos</font></b></td>
      <td><input name="apellidos" type="text" id="apellidos" /></td>
    </tr>
    <tr>
      <td><b><font size="2" face="Arial, Helvetica, sans-serif">Telefono</font></b></td>
      <td><input name="telefono" type="text" id="telefono" /></td>
    </tr>
    <tr>
      <td colspan="2"><div align="center"><font size="2" face="Arial, Helvetica, sans-serif"><b>Seleccione una clave </b></font></div></td>
    </tr>
    <tr>
      <td><b><font size="2" face="Arial, Helvetica, sans-serif">Clave</font></b></td>
      <td><input name="password" type="password" id="password" /></td>
    </tr>
    <tr>
      <td><b><font size="2" face="Arial, Helvetica, sans-serif">Valide la Clave </font></b></td>
      <td><input name="password2" type="password" id="password2" />
      <b><font size="1" face="Arial, Helvetica, sans-serif">*debe coincidir con el campo anterior</font></b></td>
    </tr>
    <tr>
      <td colspan="2"><div align="center"><font size="2" face="Arial, Helvetica, sans-serif"><b>Marque los servicios en los que est&aacute; interesado para recibir m&aacute;s informaci&oacute;n sobre ellos</b></font> </div></td>
    </tr>
          <tr>
        <td colspan="2"><p><b><font size="2" face="Arial, Helvetica, sans-serif">
           &nbsp;
           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
           <input name="servicios" type="checkbox" id="servicios" value="S1" />
          Servicio1</font></b>
        </p></td>
      </tr>
      <tr>
      <td colspan="2"><div align="center">
        <input type="submit" name="Submit" value="Enviar Datos" />
      </div></td>
    </tr>
  </table>
</form>
<p>&nbsp; </p>
</body> 
Alguien sabria decirme que estoy haciendo mal?? Gracias por adelantado, salu2
__________________
Vayamos por Partes :: Jack el Destripador
  #2 (permalink)  
Antiguo 01/02/2007, 03:34
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 3 meses
Puntos: 3
Re: Fallo en Validación de Formulario

prueba a poner la funcion asi:

Código HTML:
<script language="javascript"> 
/*function validar(frm) { 
 return (frm.email.value == frm.email2.value && frm.clave.value == frm.clave2.value); 
}*/ 
function validar(frm) { 
  var ret;
  if (frm.empresa.value == "" || frm.cifempresa.value == "" || frm.usuario.value == "" || frm.usuario2.value == "" || frm.nombre.value == "" || frm.apellidos.value == "" || frm.telefono.value == "" || frm.password.value == "" || frm.password2.value == "") { 
   alert('Por favor, rellene todos los campos'); 
   ret = false; 
 } 
 if (frm.usuario.value != frm.usuario2.value || frm.password.value != frm.password2.value) { 
   alert('Por favor, revise el email o la clave. No coinciden con el campo de verificacion'); 
   ret = false; 
 } 
return ret;
} 
</script> 
  #3 (permalink)  
Antiguo 01/02/2007, 03:40
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: Fallo en Validación de Formulario

Hola:

Deberías invertr la validación...

Código:
if (!(frm.empresa.value != "" && frm.cifempresa.value != "" && ... )) { 
   alert('Por favor, rellene todos los campos'); 
   return false; 
}
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 01/02/2007, 04:22
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 5 meses
Puntos: 8
Re: Fallo en Validación de Formulario

He probado con las dos y nada. Con la de wigglyUtrera, hace lo mismo que antes, si se rellena el primer campo, ya envia el formulario. Y con la de caricatos, aunque los deje todos en blanco, lo envia :(
__________________
Vayamos por Partes :: Jack el Destripador
  #5 (permalink)  
Antiguo 01/02/2007, 04:24
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 3 meses
Puntos: 3
Re: Fallo en Validación de Formulario

angel_dope, yo lo he probado y funciona bien, te salian los dos alert cuando antes solo te salia uno...
  #6 (permalink)  
Antiguo 01/02/2007, 04:29
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 5 meses
Puntos: 8
Re: Fallo en Validación de Formulario

Si, ahora salen los dos alert, siempre y cuando no rellenes el primer campo, en cuanto le pones algo al primero, da igual que el resto de campos tengan algo o no, o que los emails no coincidan, envia directamente el formulario, y no entiendo por que
__________________
Vayamos por Partes :: Jack el Destripador
  #7 (permalink)  
Antiguo 01/02/2007, 04:30
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 3 meses
Puntos: 3
Re: Fallo en Validación de Formulario

El problema esta en el nombre de cifEmpresa. que en la validacion lo tienes todo en minusculas
  #8 (permalink)  
Antiguo 01/02/2007, 04:38
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: Fallo en Validación de Formulario

Hola:

¿Mi propuesta la has probado negándola ("!()") tal como te indiqué... ?...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 02/02/2007, 10:57
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
De acuerdo Re: Fallo en Validación de Formulario

Prueba lo siguiente, en vez de colocar el onsubmit, coloca en el
<input type="submit" name="Submit" value="Enviar Datos" onclick="returnvalidar(this.form)" />
y a la funcion validar la haria de la siguiente manera:
function validar(form)
{
if(form.empresa.value == "" || form.cifempresa.value == "" || form.usuario.value == "" || form.usuario2.value == "" || form.nombre.value == "" || form.apellidos.value == "" || form.telefono.value == "" || form.password.value == "" || form.password2.value == ""))
{
alert("Por favor rellene todos los campos del formulario");
return false;
}
if(form.usuario.value != form.usuario2.value)
{
alert(EL nombre de usuario no coincide);
form.usuario.focus();
return false;
}
if(form.password.value != form.password2.value)
{
alert("Las contraseñas no cinciden");
form.password.focus();
return false;
}
}

De esta manera el usuario sabe con certeza que es lo que ha introducido mal y no debe revisar todo el formulario.
Espero que te sirva
  #10 (permalink)  
Antiguo 02/02/2007, 12:25
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: Fallo en Validación de Formulario

Hola:

cala932: Una validación estandar y bien hecha se hace desde el onsubmit del tag form... si usas el onclick de un tag submit se enviaría el formulario siempre...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #11 (permalink)  
Antiguo 02/02/2007, 17:55
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: Fallo en Validación de Formulario

Yo lo he probado y funciona, supongo porque en el input esta el retorno de la funcion y siempre retorna false en caso de no cumplir la condicion por lo tanto no envia el formulario. Gracias de todos modos por la aclaracion del onsubmit, de ahora en adelante la tendre en cuenta.
  #12 (permalink)  
Antiguo 03/02/2007, 16:25
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: Fallo en Validación de Formulario

Cita:
Iniciado por cala932 Ver Mensaje
Yo lo he probado y funciona, supongo porque en el input esta el retorno de la funcion y siempre retorna false en caso de no cumplir la condicion por lo tanto no envia el formulario. Gracias de todos modos por la aclaracion del onsubmit, de ahora en adelante la tendre en cuenta.
Hola:

Hay veces que se hacen pruebas en un navegador y funcionan, pero si las pruebas no se hacen en todos no se pueden hacer afirmaciones generales... por regla general hago mis pruebas en explorer, firefox y opera... y en base a esas pruebas he aprendido a hacer los scripts de forma estándar...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #13 (permalink)  
Antiguo 08/02/2007, 05:19
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 5 meses
Puntos: 8
Re: Fallo en Validación de Formulario

Vaya, no habia visto que habian más respuestas y hoy por casualidad he visto que el fallo era la mayuscula del campo cifEmpresa e iba a ponerlo pero veo que ya lo habais descubierto jeje. Gracias a todos, salu2
__________________
Vayamos por Partes :: Jack el Destripador
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 15:41.