Foros del Web » Programando para Internet » Javascript »

validar formulario

Estas en el tema de validar formulario en el foro de Javascript en Foros del Web. Hola, ya se que este tema se ha tocado cien mil veces pero no logro hacer la validación de este formulario, que el e-mail sea ...
  #1 (permalink)  
Antiguo 06/03/2007, 05:11
 
Fecha de Ingreso: febrero-2007
Mensajes: 23
Antigüedad: 17 años, 2 meses
Puntos: 0
validar formulario

Hola, ya se que este tema se ha tocado cien mil veces pero no logro hacer la validación de este formulario, que el e-mail sea efectivamente e-mail, el contacto no este vacio y el checkbox este activado. Lo unico que logro es tener un mensaje de error y luego se envia con o sin campos.

Ayuda por fisss, Gracias!!

<script language="JavaScript">
function valida_envia(){
if (document.formulario.EMail.value.length==0){
alert("Tiene que escribir un Email")
document.formulario.EMail.focus();
return false;}
if (document.formulario.Contacto.value.length==0){
alert("Tiene que escribir un nombre de contacto")
document.formulario.Contacto.focus();
return false;}
if (document.formulario.Acepto.checked == false){
alert("Debe leer y aceptar las condiciones de uso y privacidad del sitio web");
return false;
}
return true;
document.formulario.submit();
}
</script>

<form action="sendmail1.asp" method="post" name="formulario" id="formulario" onSubmit="valida_envia('EMail','','Contacto','')">
<table border="0" cellspacing="2" width="360" align="center" cellpadding="1">
<tr align="center">
<td colspan="2" height="25"><img src="../006/cabeceracontactar.gif" height="50" border="0" width="333"></td>
</tr>
<tr>
<td colspan="2" class="texto">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="texto">Si desea recibir más información sobre alguno
de nuestros productos, rellene este formulario y en breve nos pondremos
en contacto con usted.<br>
</td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="texto">(*) Información requerida</td>
</tr>
<tr>
<td width="113" align="right" class="textog">E-mail(*): </td>
<td width="258" valign="top">
<input type="text" name="EMail" size="40" tabindex="9" maxlength="30">
</td>
</tr>
<tr>
<td width="113" align="right" class="textog">Persona de Contacto(*): </td>
<td width="258" valign="top">
<input type="text" name="Contacto" size="40" tabindex="11" maxlength="50">
</td>
</tr>
<tr>
<td width="113" align="right" class="textog">Teléfono de Contacto: </td>
<td width="258" valign="top">
<input type="text" name="Telefono" size="40" tabindex="10" maxlength="30">
</td>
</tr>
<tr>
<td width="113" class="textog" align="right">Comentarios: </td>
<td width="258" valign="top">
<textarea rows="3" name="Comentarios" cols="35" tabindex="18"></textarea>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input name="Acepto" type="checkbox" id="Acepto" value="checkbox" checked>
<a href="../legal.html">He le&iacute;do y aceptado las condiciones de uso y privacidad del sitio web</a> </td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Enviar" class="boton">
<input type="reset" value="Borrar" class="boton">
</td>
</tr>
</table>
</form>
  #2 (permalink)  
Antiguo 06/03/2007, 06:13
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Re: validar formulario

Prueba así

Código:
<script language="JavaScript">
function valida_envia(){ 
if (document.formulario.EMail.value.length==0){ 
alert("Tiene que escribir un Email") 
document.formulario.EMail.focus(); 
return false;}
if (document.formulario.Contacto.value.length==0){ 
alert("Tiene que escribir un nombre de contacto") 
document.formulario.Contacto.focus();
return false;}
if (document.formulario.Acepto.checked == false){
alert("Debe leer y aceptar las condiciones de uso y privacidad del sitio web");
return false;
}
else
{
return true;
}
}
</script>

<form action="sendmail1.asp" method="post" name="formulario" id="formulario" onSubmit="valida_envia()">
Suerte
  #3 (permalink)  
Antiguo 06/03/2007, 06:21
 
Fecha de Ingreso: febrero-2007
Mensajes: 23
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: validar formulario

Adler gracias por tu respuesta pero sigue sin funcionar, me salen los mensajes Alert y cuando le doy a aceptar envia el formulario.
  #4 (permalink)  
Antiguo 06/03/2007, 06:49
 
Fecha de Ingreso: febrero-2007
Mensajes: 23
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: validar formulario

Me funciona con esto, de todas formas muchas gracias :

function validar(formulario) {
if (formulario.Contacto.value.length < 4) {
alert("Escriba por lo menos 4 caracteres en el campo \"Persona de Contacto\".");
formulario.Contacto.focus();
return (false);
}
var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú ";
var checkStr = formulario.Contacto.value;
var allValid = true;
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length) {
allValid = false;
break;
}
}
if (!allValid) {
alert("Escriba sólo letras en el campo \"Persona de Contacto\".");
formulario.Contacto.focus();
return (false);
}

if ((formulario.EMail.value.indexOf ('@', 0) == -1)||(formulario.EMail.value.length < 5)) {
alert("Escriba una dirección de correo válida en el campo \"E-Mail\".");
return (false);
}

if (formulario.Acepto.checked == false){
alert("Debe leer y aceptar las condiciones de uso y privacidad del sitio web");
return (false);
}
return (true);
}
  #5 (permalink)  
Antiguo 06/03/2007, 10:44
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 2 meses
Puntos: 67
Re: validar formulario

A mi me parece que falta ; al final de cada alert
  #6 (permalink)  
Antiguo 06/03/2007, 12:11
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: validar formulario

Hola:

La forma de validar los formularios es con el evento submit del tag form, pero en el sistema original te faltó el return...

onsubmit="return valida_envia('EMail','','Contacto','')"

Luego en la función se devuelve true cuando valida y false para cancelar...

Por ejemplo:

if (!allValid) {
alert('Escriba sólo letras en el campo "Persona de Contacto".');
formulario.Contacto.focus();
return allValid;
}

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 08:22.