Problema validación javascript
Hola Compañeros,
Tengo un código de validación para el campo email y el checkbox de un formulario. El caso es que se comprueba que están todos los campos requeridos (email y checkbox) y cuando no lo están muestra la alerta.
Pero cuando está todo correcto, aunque se pulse en el botón de enviar, este no ejecuta el action"mailer.php".
Os dejo el código de validación, es posible que le falte algo y por ello no ejecute el action.
<script type="text/javascript">
function validar()
{
var email = document.getElementById('email');
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!filter.test(email.value)) {
alert('Por favor compruebe la dirección de email');
email.submit;
return false;
}
elemento = document.getElementById("checkbox");
if( !elemento.checked ) alert('Por favor acepte el aviso legal'); {
return false;
}
return true;
}
</script>
¡Gracias por todo!
Un saludo desde la ciudad de la Alhambra
guitobon
karlitoxgr, estas haciendo un submit del campo email.
Lo debes hacer del formulario.
Veo "raro" el siguiente codigo:
if (!filter.test(email.value)) {
alert('Por favor compruebe la dirección de email');
email.submit;
return false;
}
De beria ser algo como,
if (!filter.test(email.value)) {
alert('Por favor compruebe la dirección de email');
return false;
}
...resto de comprobaciones...
document.getElementById('signupform').submit();
karlitoxgr
Hola Cloud Studio,
Gracias por tu pronta respuesta. El código del formulario en principio creo que está bien. Nuevamente gracias por tu ayuda.
<!-- form -->
<form id="signupform" method="post" onSubmit="return validar()" action="mailer.php" >
<div class="topform">
<p class="tituloform">Contacta con nosotros </p>
<p class="subform">Pregúntanos cualquier duda que tengas </p>
</div>
<div class="form_input_first">
<label>Nombre</label>
<input type="text" name="name" id="name" maxlength="35" onblur="if(this.value==''){this.value='Por favor inserta tu nombre'}" onfocus="if(this.value=='Por favor inserta tu nombre'){this.value=''}" />
</div>
<div class="form_input">
<label>Email</label>
<input type="text" name="email" id="email" maxlength="35" onblur="if(this.value==''){this.value='Por favor inserta un email'}" onfocus="if(this.value=='Por favor inserta un email'){this.value=''}" />
</div>
<div class="form_input">
<label>Teléfono</label>
<input type="text" name="phone" id="phone" maxlength="35" onblur="if(this.value==''){this.value='Por favor inserta un teléfono'}" onfocus="if(this.value=='Por favor inserta un teléfono'){this.value=''}" />
</div>
<div class="form_input_last">
<input type="checkbox" value="" id="checkbox" />
<span>Acepto los <i><a data-rel="prettyPhotoo[iframes]" href="politica-privacidad.html?iframe=true" title="Información Políticas de Privacidad">Terminos y Condiciones</a></i></span>
<button type="submit" name="submit" id="submit">Enviar</button>
</div>
</form>
<!--/form -->
Cloudstudio
Al no ser que lo hagas con Ajax el javascript no te va a ejecutar ningun PHP , mira que tu formulario html tenga bien el form :
<form method="post" id="searchform" action="mailer.php">