Foros del Web » Programando para Internet » Javascript »

validacion

Estas en el tema de validacion en el foro de Javascript en Foros del Web. Holas, tengo un problema con la validación de este formulario, aqui les pongo el codigo para q lo vean, no valida bien <html> <head> <title>Untitled ...
  #1 (permalink)  
Antiguo 10/11/2003, 17:32
 
Fecha de Ingreso: enero-2002
Ubicación: Callao - Perú
Mensajes: 1.127
Antigüedad: 23 años
Puntos: 0
validacion

Holas, tengo un problema con la validación de este formulario, aqui les pongo el codigo para q lo vean, no valida bien

<html>
<head>
<title>Untitled Document</title>
<script>
function validate()
{

submitOK="True"

// personal information
if (document.form.nombre.value == "")
{
alert("Ingrese su nombre.")
submitOK="False"
}
if (document.form.dirección.value == "")
{
alert("Ingrese su dirección.")
submitOK="False"
}
if (document.form.distrito.value == "")
{
alert("Ingrese su distrito.")
submitOK="False"
}
if (document.form.telefono.value == "")
{
alert("Ingrese su email.")
submitOK="False"
}
if (document.form.edad.value == "")
{
alert("Ingrese su edad.")
submitOK="False"
}
if (document.form.email.value == "")
{
alert("Ingrese su email.")
submitOK="False"
}
if (document.form.dni.value == "")
{
alert("Ingrese su dni.")
submitOK="False"
}
if (document.form.empresa.value == "")
{
alert("Ingrese su empresa.")
submitOK="False"
}
if (submitOK=="False")
{
return false
}
}
</script>
</head>

<body>
<form name="form" method="post" action="envio.asp" onSubmit="return validate()">
<table width="343" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="126"><font face="Arial, Helvetica, sans-serif"><font size="1" face="Arial, Helvetica, sans-serif">Nombres
y Apellidos:</font></font></td>
<td width="240"> <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"
color=#666666 size=1>
<input name="nombre" type="text" id="nombre" size="30">
</font></div></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif"><font size="1" face="Arial, Helvetica, sans-serif">
Direcci&oacute;n:</font></font></td>
<td><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"
color=#666666 size=1>
<input name="direccion" type="text" class="formulario" id="direccion" size="30">
</font></div></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif"><font size="1" face="Arial, Helvetica, sans-serif">
Distrito:</font></font></td>
<td><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"
color=#666666 size=1>
<input name="distrito" type="text" class="formulario" id="distrito" size="30">
</font></div></td>
</tr>
<tr>
<td height="22"><font face="Arial, Helvetica, sans-serif"><font size="1" face="Arial, Helvetica, sans-serif">Tel&eacute;fono:</font></font></td>
<td><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"
color=#666666 size=1>
<input name="telefono" type="text" class="formulario" id="telefono" size="30" maxlength="10">
</font></div></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif"><font size="1" face="Arial, Helvetica, sans-serif">
E-mail:</font></font></td>
<td><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"
color=#666666 size=1>
<input name="email" type="text" class="formulario" id="email" size="30">
</font></div></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif"><font size="1" face="Arial, Helvetica, sans-serif">Edad:</font></font></td>
<td><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"
color=#666666 size=1>
<input name="edad" type="text" class="formulario" id="edad" size="30" maxlength="2">
</font></div></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif"><font size="1" face="Arial, Helvetica, sans-serif">Empresa
donde Labora:</font></font></td>
<td><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"
color=#666666 size=1>
<input name="empresa" type="text" class="formulario" id="empresa" size="30">
</font></div></td>
</tr>
<tr>
<td><font size="1" face="Arial, Helvetica, sans-serif">D.N.I.</font></td>
<td><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"
color=#666666 size=1>
<input name="dni" type="text" class="formulario" id="dni" size="30">
</font></div></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</form>
</body>
</html>
__________________
SaLuDoS dE:
PePeLuChO dEl PeRú PaRa El MuNdO
  #2 (permalink)  
Antiguo 10/11/2003, 17:57
Avatar de sci-fi  
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 22 años, 9 meses
Puntos: 0
hola,

una cosa, en el código veo que hay una propiedad con acento español, "dirección", no se puede acceder a un objeto así en javascript, document.blabla.dirección, eso te estará dando un error.

La otra cosa es que veo que estás accediendo al formulario con document.form, la forma correcta es document.forms[0], suponiendo que hay un solo formulario en tu documento HTML.

[Aclaración añadida "a posteriori": veo que tu form tiene un nombre "form", como esa es una palabra reservada en javascript, te convendría elegir otro nombre. De todas maneras la forma correcta como está en ese código sería document.forms.form, pero esto te seguirá dando error por lo mencionado más arriba...]

Como document.forms es un array, no puedes acceder al formulario así con eso a secas, tienes que hacer document.forms[0]. Otra forma (que prefiero pero es algo personal, aunque creo que es mejor porque en lugar de algo tan "cuadrado" como números estás accediendo al form con un nombre humanamente más legible, si te tomas el trabajito extra de ponerle un nombre un poco más significativo a la tag de form) es acceder así:

document.forms['nombreDelFormulario']

en tu caso sería

document.forms['form']

Por último ese código es muy repetitivo, está repitiendo el mismo check varias veces para cada uno de los objetos del formulario. Excede este post explicar esto pero piensa que con una función que tome un argumento (por ej., los objetos del formulario, iterativamente), abreviarías y simplificarías para bien el código....

saludos

Última edición por sci-fi; 10/11/2003 a las 18:03
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 18:39.