Foros del Web » Programando para Internet » Javascript »

problema al validar y enviar un formulario

Estas en el tema de problema al validar y enviar un formulario en el foro de Javascript en Foros del Web. Hola, he elaborado un formulario y lo estoy validando con javascript, a la hora de probar el formulario lleno por ejemplo el campo nombre , ...
  #1 (permalink)  
Antiguo 09/07/2005, 10:28
Avatar de geograf_art  
Fecha de Ingreso: abril-2005
Mensajes: 55
Antigüedad: 19 años, 1 mes
Puntos: 0
Pregunta problema al validar y enviar un formulario

Hola, he elaborado un formulario y lo estoy validando con javascript, a la hora de probar el formulario lleno por ejemplo el campo nombre , el campo apellido lo dejo vacio trato de enviar el formulario me sele el alert 'escriba su apellido' hasta ahi todo bien, pero al hacer click en aceptar del alert el formulario se envia instantaneamente obviamente incompleto, aca les pongo mi codigo:

codigo Javascript( este codigo no es mio lo he sacado de aca del foro y lo he estado armando)

function validar(theElement, nombre_del_elemento){
if(document.formu.nombre.value.length==0){
alert("Escriba su nombre");
document.formu.nombre.focus();
return(false);}
if(document.formu.apellido.value.length==0){
alert("escriba su apellido");
document.formu.apellido.focus();
return(false);}
{var s = theElement.value;
var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
if (s.length == 0 ) {
alert("Tiene que escribir su correo")
return true;}
if (filter.test(s)){
return true;}
else{
alert("Ingrese una dirección de correo válida");
theElement.focus();
return false;}}
if (confirm('¿Estas seguro de enviar este formulario?')){
document.formu.submit()
}

EL FORMULARIO:

<form method="post" action="insertar.php" name="formu">
<input type="text" name="nombre" .....>
........
<input type="button" value="enviar" onClick="validar(correo,'correo')">


Espero haber sido lo suficiente claro y si pomngo html y javascript para q revisen el codigo y puedan ver el error ,me imagino que la solucion debe ser sencilla, no tengo mucha experiencia en esto, de antemano gracias por sus respuesta.chau
  #2 (permalink)  
Antiguo 09/07/2005, 10:31
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Qué tal,

prueba así

<form method="post" action="insertar.php" name="formu" onsubmit ="return validar(correo,'correo')" >
<input type="text" name="nombre" .....>
........
<input type="submit" value="enviar" >
  #3 (permalink)  
Antiguo 09/07/2005, 11:18
Avatar de geograf_art  
Fecha de Ingreso: abril-2005
Mensajes: 55
Antigüedad: 19 años, 1 mes
Puntos: 0
ahora no envia, el orden del script esta mal me parece??

Hola tunait, gracias por la respuesta , he hecho las modificaciones ahora la pagina no envia, lleno el fomulario y trato de enviarlo pero nada, no hace caso al click q hago en enviar, podrias revisar el javascript me he dado cuenta que borrando la validacion del correo y agregando en el formulario el dato q me has dado funciona correctamente, me parece q el codigo de la validacion del correo esta mal colocado ya q la validacion en si es buena pero creo q a la hora de juntarlo con los demas codigos ahi se enreda y por eso no quiere enviar , espero que me puedas dar una mano en como colocar el codigo script, mejor dicho en ponerlo en orden, te paso de nuevo el codigo javascript:

function validar(theElement, nombre_del_elemento){
if(document.formu.nombre.value.length==0){
alert("Escriba su nombra");
document.formu.nombre.focus();
return(false);}
if(document.formu.apellido.value.length==0){
alert("escriba su apellido correctamente");
document.formu.apellido.focus();
return(false);}

//el orden de como coloco esta validacion creo q es incorrecta revisalo porfavor

var s = theElement.value;
var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
if (s.length == 0 ) {
alert("Tiene que escribir su correo")
return true;}
if (filter.test(s)){
return true;}
else{
alert("Ingrese una dirección de correo válida");
theElement.focus();
return false;}

if (confirm('¿Estas seguro de enviar este formulario?')){
document.formu.submit()
}
}

Gracias por la ayuda de antemano tunait chau
  #4 (permalink)  
Antiguo 09/07/2005, 23:29
Avatar de Carlos1975  
Fecha de Ingreso: mayo-2005
Mensajes: 29
Antigüedad: 19 años
Puntos: 0
Validacion

Prueba con esto a mi me funciona

function Validar(form)
{
if (form.nombre.value == "")
{ alert("Por favor ingrese su nombre"); form.nombre.focus(); return; }

if (form.email.value == "")
{ alert("Por favor ingrese su dirección de e-mail"); form.email.focus(); return; }

if (form.email.value.indexOf('@', 0) == -1 ||
form.email.value.indexOf('.', 0) == -1)
{ alert("Dirección de e-mail inválida"); form.Email.focus(); return; }

if (form.pais.value == "")
{ alert("Por favor diga en que pais reside"); form.pais.focus(); return; }

if (form.tipo.value == "")
{ alert("Por favor diga que tipo de animal tiene"); form.tipo.focus(); return; }

if (form.otro.value == "")
{ alert("Por favor especifique que otro tipo de animal "); form.otro.focus(); return; }

form.submit();
}

</script>

En el formulario:
<FORM ACTION="registrar.php" METHOD="post">
<input name="enviar" type="submit" value="Enviar">
</form>
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 02:35.