Foros del Web » Programando para Internet » Javascript »

Problema con validación javascript

Estas en el tema de Problema con validación javascript en el foro de Javascript en Foros del Web. Hola gente :), buenas tardes! Tengo un pequeño problema con la validación de un formulario, he hecho varios iguales y me funcionan pero este me ...
  #1 (permalink)  
Antiguo 07/06/2011, 10:23
 
Fecha de Ingreso: julio-2008
Mensajes: 58
Antigüedad: 16 años, 4 meses
Puntos: 0
Problema con validación javascript

Hola gente :), buenas tardes!

Tengo un pequeño problema con la validación de un formulario, he hecho varios iguales y me funcionan pero este me va a medias.

Me sale la alerta de que me falta por completar un campo, pero aún asi ejecuta el "action" del formulario, cuando no tenía que hacerlo hasta que rellenase el campo del formulario requerido.

Os adjunto el código para ver si podeis ayudarme a encontrar el problema, gracias de antemano.


Función Javascript:

Cita:
function valida(){

//validar el nif
if (document.registro.nif.value.length==0){
alert("Por favor, escriba el NIF");
document.registro.nif.focus();
return 0;
}

//validar nombre
if (document.registro.nombre.value.length==0){
alert("Por favor, escriba su nombre");
document.registro.nombre.focus();
return 0;
}


//El formulario se envia
alert("Muchas gracias por enviar el formulario");
document.registro.submit();

}

Código HTML
Cita:
<form id="registro" name="registro" method="post" action="regagentes.php">
<br />
<br />
<center>
<table border="0" width="75%" align="center">

<tr>

<td bgcolor="#e40000"><font color="#ffffff" face="arial" size="1">&nbsp;&nbsp;<b><u>N</u>IF:</b>&nbsp;&nbsp;</font></td>

<td> <input tabindex="1" type="text" name="nif" size="32" maxlength="16" /></td>

</tr>

<tr>

<td bgcolor="#e40000"><font color="#ffffff" face="arial" size="1">&nbsp;&nbsp;<b><u>N</u>ombre:</b>&nbsp;&nbsp;</font></td>

<td> <input type="text" tabindex="2" name="nombre" size="32" maxlength="26" /></td>

</tr>
<tr>

<td><input type="submit" name="submit" value="Enviar" onclick="valida()" /></td>

<td><input type="reset" name="reset" value="Reset" /></td>

</tr>

</table>
</form>
  #2 (permalink)  
Antiguo 07/06/2011, 11:01
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 8 meses
Puntos: 192
Respuesta: Problema con validación javascript

Probá quitando el "onclick" del input para submit y asignalo de esta forma:

Código HTML:
Ver original
  1. <form onsubmit="return valida();">

El return es muy importante, pues si la función valida() devuelve 0 o false entonces el formulario no se envía.
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 08/06/2011, 01:49
 
Fecha de Ingreso: julio-2008
Mensajes: 58
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Problema con validación javascript

Gracias por contestar ;), la verdad que he probado y me sigue haciendo lo mismo, y estoy flipando, porque tengo usado otras veces está funcion y me funcionaba bien...
  #4 (permalink)  
Antiguo 08/06/2011, 02:26
 
Fecha de Ingreso: julio-2008
Mensajes: 58
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Problema con validación javascript

Cita:
<html>
<head>
<script>

function valida_envia(){

//valido el nombre
if (document.registro2.nif.value.length==0){
alert("Tiene que escribir su nif");
document.registro2.nif.focus();
return 0;
}

//valido el nombre
if (document.registro2.nombre.value.length==0){
alert("Tiene que escribir su nombre");
document.registro2.nombre.focus();
return 0;
}

//el formulario se envia
alert("Muchas gracias por enviar el formulario");
document.registro2.action="procesamiento.php";
document.registro2.submit();
}
</script>
</head>
</body>


<form id="registro" name="registro2" method="post" action="javascript:validar();">
<br />
<br />
<center>
<table border="0" width="75%" align="center">

<tr>

<td bgcolor="#e40000"><font color="#ffffff" face="arial" size="1">&nbsp;&nbsp;<b><u>N</u>IF:</b>&nbsp;&nbsp;</font></td>

<td> <input tabindex="1" type="text" name="nif" size="32" maxlength="16" /></td>

</tr>

<tr>

<td bgcolor="#e40000"><font color="#ffffff" face="arial" size="1">&nbsp;&nbsp;<b><u>N</u>ombre:</b>&nbsp;&nbsp;</font></td>

<td> <input type="text" tabindex="2" name="nombre" size="32" maxlength="26" /></td>

</tr>
<tr>

<td><input type="submit" name="submit" value="Enviar" onclick="valida_envia()" /></td>

<td><input type="reset" name="reset" value="Reset" /></td>

</tr>

</table>
</form>

</body>
</html>
  #5 (permalink)  
Antiguo 08/06/2011, 02:31
 
Fecha de Ingreso: julio-2008
Mensajes: 58
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Problema con validación javascript

El código de antes es la solución, el código primero que puse tenía que funcionar bien, de hecho tengo ejemplos de formularios de contacto, que procesan en el campo action un php y funcionan sin problemas, pero en este caso no me iba, entonces he recurrido a sacar el php del action e incorporarlo al javascript. Salu2.

Última edición por bbv81; 08/06/2011 a las 02:37
  #6 (permalink)  
Antiguo 08/06/2011, 02:53
 
Fecha de Ingreso: julio-2008
Mensajes: 58
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Problema con validación javascript

Cita:
Iniciado por bbv81 Ver Mensaje
El código de antes es la solución, el código primero que puse tenía que funcionar bien, de hecho tengo ejemplos de formularios de contacto, que procesan en el campo action un php y funcionan sin problemas, pero en este caso no me iba, entonces he recurrido a sacar el php del action e incorporarlo al javascript. Salu2.
Lo que me inquieta es que funciona y el motivo de que funcione es porque en el campo del formulario action llama a una funcion de javascript que no existe.... quien lo entienda que me lo explique....

Etiquetas: validar
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 11:44.