我在我创建的wordpress网站上创建了一个简单的联系表单,该网站使用jQuery检查输入的电子邮件地址是否有效。当我填写表单时,一切正常(它验证确定),除了它没有发送电子邮件,它一直停留在$('#loader', form).html('<p class="enviando">Enviando, por favor espere...</p>');
步骤。我究竟做错了什么?
谢谢大家!
这是我的代码:
HTML
<div class="email_me">Puede contactarme rellenando el siguiente formulario</div>
<div id="form-cont">
<div id="form">
<form action="process.php" method="post" id="contact_form">
<input type="textbox" name="nombre" id="nombre" value="nombre" onFocus="if(this.value=='nombre')this.value='';" onBlur="if(this.value=='')this.value='nombre'";/>
<input type="textbox" name="email" id="email" value="email" onFocus="if(this.value=='email')this.value='';" onBlur="if(this.value=='')this.value='email'";/>
<textarea name="comentario" id="comentario" cols="" rows="" onFocus="if(this.value=='COMENTARIO...')this.value='';" onBlur="if(this.value=='')this.value='COMENTARIO...';">COMENTARIO...</textarea>
<div id="loader">
<input type="submit" name="enviar" id="submit" />
</div>
</form>
</div>
<div id="email_error">Dirección de email no valida<br/>- Volver a intentar -</div>
</div>
<div class="email_me">También puede hacerlo vía email escribiendo a:<br/><a href="mailto:xxxxxx@gmail.com">xxxxxx@gmail.com</a></div>
PHP - &gt; process.php
<?php
$toemail = 'hello@email.com';
$name = $_POST['nombre'];
$email = $_POST['email'];
$message = $_POST['comentario'];
if(mail($toemail, 'Email desde Web', $message, 'From: ' . $email)) {
echo "<p class='enviado'>Su mensaje ha sido enviado. Gracias.</p>";
} else {
echo "<p class='enviado'>Hubo un problema enviando su email, por favor vuelva a intentar luego.</p>";
}
?>
的jQuery
$(function(){
function validar_email(valor){
var filter = /[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/;
if(filter.test(valor))
return true;
else
return false;
}
$('#contact_form').submit(function(e){
e.preventDefault();
var form = $(this);
var post_url = form.attr('action');
var post_data = form.serialize();
if($("#email").val() == ''){
$('#form').fadeOut(500, function() {
$('#email_error').fadeIn(500);
});
}
else if(validar_email($("#email").val())){
$('#loader', form).html('<p class="enviando">Enviando, por favor espere...</p>');
$.ajax({
type: 'POST',
url: post_url,
data: post_data,
success: function(msg) {
$(form).fadeOut(500, function(){
form.html(msg).delay(500).fadeIn();
$('.email_me').fadeOut(500);
});
}
});
}
else {
$('#form').fadeOut(500, function() {
$('#email_error').fadeIn(500);
});
}
});
});
编辑:解决方案很简单。我没有正确地链接表格。我忘了
之前的wordpress <?php bloginfo('template_url'); ?>/
标记
process.php