Foros del Web » Programando para Internet » Javascript »

recarga formulario

Estas en el tema de recarga formulario en el foro de Javascript en Foros del Web. Hola, Tengo un formulario que valido llamando a un script. Me funciona, pero cuando me sale el mensaje de alerta por dejar un campo en ...
  #1 (permalink)  
Antiguo 10/10/2006, 16:09
 
Fecha de Ingreso: abril-2004
Mensajes: 58
Antigüedad: 20 años
Puntos: 0
recarga formulario

Hola,

Tengo un formulario que valido llamando a un script.

Me funciona, pero cuando me sale el mensaje de alerta por dejar un campo en blanco me vuelve a cargar la página, en lugar de ir al foco como tengo indicado en el script y se me borran todos los datos introducidos

una parte del script

if (document.contact.name.value.length==0){
alert('Please enter your name');
document.contact.name.focus()
return false;
}

La funcion la llamo desde el formulario con onSubmit="valida ();"
Alquien sabe a que es debido?

Saludos
  #2 (permalink)  
Antiguo 10/10/2006, 16:37
Avatar de skatomundo  
Fecha de Ingreso: junio-2002
Ubicación: Santiago - CL
Mensajes: 2.532
Antigüedad: 21 años, 10 meses
Puntos: 125
En tu
Código:
 onSubmit="return valida();"
  #3 (permalink)  
Antiguo 10/10/2006, 16:37
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

A simple vista te faltaría poner la palabra return :

onsubmit="return valida()"

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 10/10/2006, 17:25
 
Fecha de Ingreso: abril-2004
Mensajes: 58
Antigüedad: 20 años
Puntos: 0
Perdon, me equivoqué al teclear,
confirmo que tengo onsubmit="return valida();"
No es eso, aunque gracias por contestar
  #5 (permalink)  
Antiguo 10/10/2006, 17:32
Avatar de skatomundo  
Fecha de Ingreso: junio-2002
Ubicación: Santiago - CL
Mensajes: 2.532
Antigüedad: 21 años, 10 meses
Puntos: 125
Un poco más de código para ver!

<form .....

function valida()
{

}

etc.
  #6 (permalink)  
Antiguo 11/10/2006, 03:09
 
Fecha de Ingreso: abril-2004
Mensajes: 58
Antigüedad: 20 años
Puntos: 0
El js:

function valida_envia(){ //valida els camps del formulari, que no es deixi en blanc, donant alerta i situant al focus

//Valida que no es deixi en blanc el nom
if (document.contact.name.value.length==0){
alert('Please enter your name');
document.contact.name.focus()
return false;
}

//Valida que no es deixi en blanc el email
if (document.contact.email.value.length==0){
alert('Please enter your e-mail');
document.contact.email.focus()
return false;
}
//Valida que no deixi en blanc el missatge
if (document.contact.coment.value.length==0){
alert('Please complete the requered field');
document.contact.coment.focus()
return false;
}

var emailFilter = /^.+@.+\..{2,4}$/;
if (!(emailFilter.test (document.contact.email.value))) {
alert ("Please enter a valid email address");
document.contact.email.focus()
return false;
}
else {
var ilegalCaracter=/[\(\)\<\>\, \;\:\\\*\[\]]/
if (document.contact.email.value.match (ilegalCaracter)) {
alert ('The email address contains illegal characters. Please enter a valid email address');
document.contact.email.focus()
return false;
}
}
return true;
}
  #7 (permalink)  
Antiguo 11/10/2006, 03:21
 
Fecha de Ingreso: abril-2004
Mensajes: 58
Antigüedad: 20 años
Puntos: 0
el codigo II

el form

<form name="contact" id="contact" onsubmit="return valida_envia();">
<fieldset>
<legend>Contacting the project ESCITY</legend>
<table width="603" height="252" border="0" align="center" cellpadding="1" cellspacing="3">
<tr>

</tr>
<tr>
<td width="230" height="0">&nbsp;</td>
<td width="360" height="0">&nbsp;</td>
</tr>
<tr>
<td height="24" class="text"> <div align="right">Your Name*</div></td>
<td><input name="nombre" class="formInputField" type="text" id="name">
</td>
</tr>
<tr>
<td height="24" class="text"> <div align="right">Your email address*</div></td>
<td><input name="email" class="formInputField" type="text" id="email"></td>
</tr>
<tr>
<td height="24" class="text"> <div align="right">Message subject</div></td>
<td><input class="formInputField" name="asunto" type="text" id="subject" maxlength="80"></td>
</tr>
<tr>
<td height="26" class="text"> <div align="right">Your message*</div></td>
<td rowspan="3" valign="top"> <textarea name="comentario" class="formInputField" cols="50" rows="5" id="missatge"></textarea>
</td>
</tr>
<tr>
<td class="text">&nbsp;</td>
</tr>
<tr>
<td class="text">&nbsp;</td>
</tr>
<tr>
<td class="text"><div align="right">
<input type="submit" name="Submit" value="Submit">
</div></td>
<td valign="top">&nbsp;</td>
</tr>
</table>
</fieldset>
</form>

</div></td>
</table>
</div>

</body>
</html>
  #8 (permalink)  
Antiguo 11/10/2006, 03:22
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

El código parece estar bien, solo se me ocurre que estés enviando el formulario con un script... Las validaciones son convenientes con botones del tipo submit.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 11/10/2006, 03:27
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Hemos cruzado las respuestas. No tienes ningun campo de nombre "name" (y no sería un nombre conveniente)... En el primer bloque "if" tienes que cambiar ese dato

Esta línea...
if (document.contact.name.value.length==0){ ...
debería ser...
if (document.contact.nombre.value.length==0){ ...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #10 (permalink)  
Antiguo 11/10/2006, 03:34
 
Fecha de Ingreso: abril-2004
Mensajes: 58
Antigüedad: 20 años
Puntos: 0
Muchas gracias por vuestra ayuda, ya lo he solucionado.
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 04:19.