Foros del Web » Programando para Internet » Javascript »

Enviar formulario PHP y validar JS

Estas en el tema de Enviar formulario PHP y validar JS en el foro de Javascript en Foros del Web. Buenas a tod@s! Tengo un pequeño gran problema que no me deja avanzar en la programación de una web. Resulta que tengo un formulario de ...
  #1 (permalink)  
Antiguo 29/08/2013, 09:55
 
Fecha de Ingreso: enero-2011
Mensajes: 9
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta Enviar formulario PHP y validar JS

Buenas a tod@s!

Tengo un pequeño gran problema que no me deja avanzar en la programación de una web.
Resulta que tengo un formulario de Contacto que se valida (con js) al hacer click en enviar y que envía un mail (con php), mi problema está en que se envía el correo aunque la validación de javascript no haya devuelvo TRUE (validación correcta)

Formulario
Cita:
<form name="formularioContacto" method="post" action="sendbyemailContacto.php" >

<table border="0">
<tr>
<td><input type="text" name="nombre" id="f0" onkeypress="return permiteTexto(event)" maxlength="50" ></td>
<td id="t0"></td>
</tr>
<tr>
<td><input type="email" name="email" id="f1" maxlength="60"></td>
<td id="t1"></td>
</tr>
<tr>
<td><input type="text" name="mensaje" id="f2" ></td>
<td id="t2"></td>
</tr>
<tr>
<td>
<input id="enviar" type="submit" value="Enviar" name="enviar" onclick="return validarContacto()">
</td>
</tr>
</table>
</form>
JS
Cita:
function validarContacto(){

t0.innerHTML='';t1.innerHTML='';t2.innerHTML='';
lista.innerHTML='';

var nombre = document.getElementById("f0").value;
var email = document.getElementById("f1").value;
var mensaje = document.getElementById("f2").value;
var correcto = true;


// Comprobar campos en blanco
for(var i = 0 ; i <= 2 ; i++){
if(document.getElementById("f"+i).value==""){
escribir("El campo '"+document.getElementById("f"+i).name+"' no puede estar vacío");
document.getElementById("f"+i).focus();
correcto = false;
insertaTick("t"+i);
}
}

if( !(/[\w-\.]{3,}@(([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4})$/.test(email))){
escribir("Email incorrecto!");
insertaTick(t2);
document.getElementById("f2").focus();
correcto = false;
}
if(correcto) return true;
return false;

}
Espero que puedan ayudarme, muchas gracias!
  #2 (permalink)  
Antiguo 30/08/2013, 00:35
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: Enviar formulario PHP y validar JS

Con este formato y las funciones personales comentadas va bien.
Código Javascript:
Ver original
  1. function escribir(string) {
  2.    alert(string);
  3. }
  4.  
  5. /**
  6.  * @returns {Boolean}
  7.  */
  8. function validarContacto() {
  9.  
  10.    t0.innerHTML = ''; t1.innerHTML = ''; t2.innerHTML = '';
  11.    //lista.innerHTML = '';
  12.    var nombre = document.getElementById("f0").value;
  13.    var email = document.getElementById("f1").value;
  14.    var mensaje = document.getElementById("f2").value;
  15.    var correcto = true;
  16.    
  17.    /**
  18.     *  Comprobar campos en blanco
  19.     */
  20.    for (var i = 0; i <= 2; i++) {
  21.  
  22.       if (document.getElementById("f" + i).value == "") {
  23.  
  24.          escribir("El campo '" + document.getElementById("f" + i).name + "' no puede estar vacío");
  25.          document.getElementById("f" + i).focus();
  26.          correcto = false;
  27.          //insertaTick("t" + i);
  28.       }
  29.    }
  30.  
  31.    if (document.getElementById("f1").value !== "") {
  32.       if (!(/[\w-\.]{3,}@(([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4})$/.test(email))) {
  33.          escribir("Email incorrecto!");
  34.          // insertaTick(t2);
  35.          document.getElementById("f2").focus();
  36.          correcto = false;
  37.       }
  38.    }
  39.  
  40.    if (!correcto) {
  41.       return false;
  42.    }
  43.  
  44. }

Etiquetas: formulario, js, php
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 05:04.