Foros del Web » Programando para Internet » Javascript »

Formulario: problema con Confirmación de datos (FAQ. # 28)

Estas en el tema de Formulario: problema con Confirmación de datos (FAQ. # 28) en el foro de Javascript en Foros del Web. Hola: Tengo un formulario con tres campos y una función de validación para cada uno en las cuales me ayudaron mucho wigglyUtrera y JavierB cuyo ...
  #1 (permalink)  
Antiguo 18/02/2007, 02:33
Avatar de alegna  
Fecha de Ingreso: julio-2005
Mensajes: 14
Antigüedad: 18 años, 9 meses
Puntos: 0
Pregunta Formulario: problema con Confirmación de datos (FAQ. # 28)

Hola:

Tengo un formulario con tres campos y una función de validación para cada uno en las cuales me ayudaron mucho wigglyUtrera y JavierB cuyo código completo -para no replicar info- lo pueden ver en el mensaje:
h ttp://w ww.forosdelweb.com/showpost.php?p=1895133&postcount=4

El problema vino cuando quise agregar el script de Confirmación de datos de la FAQ. # 28:
h ttp://w ww.forosdelweb.com/showpost.php?p=260723&postcount=29

Tuve que cambiar esto del original:
Código:
<input type="button" onclick="confirma()" value="Enviar">
por esto en mi formulario:
Código:
<input type="submit" value="Vista Previa" name="enviar">
anulando lo destacado en rojo del script original y agregando la función al evento onSubmit de "mi" formulario:

Código:
<form action="mailto: [email protected]" method="post" name="solicitar" id="solicitar" onSubmit="return (vUser(this) && vacio(this) && emailCheck(this.email.value) && confirma())">
porque de lo contrario, no valida! y ahora el problema es que si bien valida y me presenta la página de confirmación... no lo manda a ninguna parteeeee!!!
Obvia decir que lo probé en línea y con un destinatario real... y que entiendo que estoy usando dos botones "submit" y algún conflicto tiene que haber, pero.. ¡no sé cómo arreglarlo ni dónde!

Por favor, ¿me puede explicar alguien qué es lo que debo cambiar o si hay alguna otra forma de hacer esto? es que soy muy nueva en Javascript y por añadidura torpe Desde ya Muchas Gracias!

Alegna
  #2 (permalink)  
Antiguo 18/02/2007, 04: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
Re: Formulario: problema con Confirmación de datos (FAQ. # 28)

Hola:

La forma de validar es correcta, pero debes comprobar que todas las funciones que usas deben devolver true/false (return true/return false), si no es así la validación estará mal...

Comprueba eso y nos cuentas...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 18/02/2007, 08:19
Avatar de alegna  
Fecha de Ingreso: julio-2005
Mensajes: 14
Antigüedad: 18 años, 9 meses
Puntos: 0
Desacuerdo Re: Formulario: problema con Confirmación de datos (FAQ. # 28) - ejemplo

Hola Caricatos:

Gracias por responder a mi mensaje. Revisé lo que me indicaste pero hay caso! Al menor cambio, las validaciones dejan de funcionar. Para no hacer esto muy largo, subí la página a un servidor de pruebas para poder verla "en acción" (desastrosa, eso sí )

h ttp://espanol.geocities.com/pmarvass/

Al margen de que el problema subsiste (no envía el formulario) cuando regresa se imprime en la página parte del código de la función confirma(). Además devuelve la dirección con ? al final y no entiendo por qué pasa esto.

El script se compone de tres funciones, y no comprendo muy bien por qué está consultado lo que destaco en naranja:

Código:
	function enviar(){
    //document.solicitar.submit();
    alert('Datos confirmados y enviados.');
    history.back();
   }

   function regresar(){
    //document.solicitar.submit();
    history.back();
   }
Utiliza lo destacado en verde en la última parte de la tercera función del script, ¿esto está bien así? ¿por qué?:

Código:
     write("    <tr>");
     write("     <td colspan='2' align='center'>");
     write("      <input type='submit' onclick='javascript:alert(" + '"' + "Datos confirmados y enviados." + '"' + ");history.back()' value='Confirmar Solicitud'>");
     write("      <input type='button' onclick='javascript:history.back()' value='Modificar Solicitud'>");
     write("     </td>");
     write("    </tr>");
     write("   </table>");
     write("</form></body></html>");
     close();
    }
   }
Sé que son demasiadas dudas pero como mucho pregunta quién poco sabe... Y no es que no tenga voluntad de aprender, he leído tantos mensajes, faqs y tutoriales estos días que ya tengo el ojo cuadrado y acabo no pescando ni una!
Si te aburrí, discúlpame y si puedes "enséñame a pescar", vale? Gracias!

Alegna
  #4 (permalink)  
Antiguo 18/02/2007, 08:54
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: Formulario: problema con Confirmación de datos (FAQ. # 28)

Hola, la funcion confirma no devuelve nada.

Prueba a poner al final de la funcion confirma():

Código:
return true;
Saludos.
  #5 (permalink)  
Antiguo 18/02/2007, 09:29
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: Formulario: problema con Confirmación de datos (FAQ. # 28)

A mi me funciona bien la pagina que tienes ahi, con un pequeño detalle.

En el codigo pone que el servidor te introduce un codigo, y eso lo que falla.
Yo he copiado todo el codigo y he quitado esa parte y funciona todo bien.

Este es el codigo que pone el servidor:

Código:
<!-- following code added by server. PLEASE REMOVE -->
<script language="JavaScript" src="http://espanol.geocities.com/js_source/ygIELib9.js?v3"></script><script language="JavaScript">yvSM=0;yvVP=0;var yviContents='http://geocities.yahoo.com/themis/as.php?cc=espanol&s=382021068&l=NE&b=1&t=1171810829';yviR='espanol';yfiEA(0);</script>
<!-- preceding code added by server. PLEASE REMOVE -->
Solo una cosa en la validacion:

([a-z]|[A-Z]|á|é|í|ó|ú|ü|ñ|\s)+

Pones que en el nombre y apellidos solo puede haber minusculas y segun esa expresion regular PUEDE haber mayusculas.


Saludos.
  #6 (permalink)  
Antiguo 18/02/2007, 09:55
Avatar de alegna  
Fecha de Ingreso: julio-2005
Mensajes: 14
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Formulario: problema con Confirmación de datos (FAQ. # 28)

Gracias wigglyUtrera, ya había llevado a cabo lo que propones. Luego lo dejé como estaba antes porque no vi ningún cambio. Ahora lo volví a poner. Idem! Sigue sin enviar los datos a mi cuenta, que es el principal problema.

Siguiendo las instrucciones de Caricatos, iba comprobando los returns uno por uno y si dejaban de funcionar las validaciones volvía al paso anterior. A propósito, ¿hay alguna diferencia si escribo return false/true con o sin punto y coma (;) al final? Ante la duda, opté por dejar cada función tal cual el original.

Otro problema era la impresión de parte del código de la función confirma(). Lo solucioné momentáneamente insertando un script que elimina la publicidad. Sé que eso no es conveniente pero a efectos de una simple prueba... Ya no devuelve la página de retorno con el ? al final de la dirección tampoco.

Sigo probando, gracias a todos!

Alegna
  #7 (permalink)  
Antiguo 18/02/2007, 10:10
Avatar de alegna  
Fecha de Ingreso: julio-2005
Mensajes: 14
Antigüedad: 18 años, 9 meses
Puntos: 0
Pregunta Re: Formulario: problema con Confirmación de datos (FAQ. # 28)

Hola de nuevo:

Al parecer, se cruzaron nuestros mensajes

Cita:
Iniciado por wigglyUtrera Ver Mensaje
Solo una cosa en la validacion:

([a-z]|[A-Z]|á|é|í|ó|ú|ü|ñ|\s)+

Pones que en el nombre y apellidos solo puede haber minusculas y segun esa expresion regular PUEDE haber mayusculas.
Acabo de corregirlo. Lo del script del servidor también, ya lo expliqué en mi mensaje anterior. Continúo luchando con el problema principal, ¿dices que a ti te funciona?
  #8 (permalink)  
Antiguo 18/02/2007, 10:18
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: Formulario: problema con Confirmación de datos (FAQ. # 28)

alegna aqui tienes como me funciona a mi. No se si aqui habra algun error de los que tu dices...

http://gshome.iespana.es/prueba.html


Saludos
  #9 (permalink)  
Antiguo 19/02/2007, 00:23
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: Formulario: problema con Confirmación de datos (FAQ. # 28)

Hola:

El método que suelo usar para las validaciones es muy sencillo, si solo se debe comprobar un campo, le asigno el resultado de la validación a una variable, que luego retorno... por ejemplo, si quiero que el campo nombre no esté vacio el código sería:
function check_nombre(formulario) {
valida = formulario.nombre.value != "";
// luego si quiero dar el foco al nombre y alertar:
if (!valida) {
alert("rellene el campo nombre);
formulario.nombre.focus();
}
// luego devolvemos la variable valida...
return valida;
}

Sobre el punto y coma, no tiene ninguna importancia si lo omites...

Si la función debe ser para varios campos es poco más complejo, pero tampoco es difícil, ya que se hace un Y lógico entre cada elemento:
valida = formulario.nombre.value != "";
valida = (valida && formulario.apellidos.value != "");


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 16:29.