我有一个非常简单的电子邮件发送表单,只有一个电子邮件字段和一个文本区域。
jQuery('#contact').validator().submit(function(e){
$.ajax({
type: "POST",
url: this.action,
data: {
mail: $('input[name="mail"]').val(),
message: $('textarea[name="message"]').val(), },
success: function(){
alert('yo');
}
});
e.preventDefault();
});
我的操作文件 (send.php) 只进行基本的电子邮件和文本区域检查,然后使用 mail() 发送它们(如果它们经过验证)。
我面临的问题是,即使我发送了错误的数据/所有字段都为空,也会显示警报消息“yo”。
任何想法如何解决这个问题?有什么办法可以“告诉”ajax 何时输入失败以及何时从我的 send.php 文件中成功?
我正在使用 jQuery Tools Validator 来验证字段,我知道有 onSuccess 操作,但在我的情况下不能使用该操作。
最佳答案
您要么需要让 PHP 以非 200“OK”HTTP 状态响应,要么检查 PHP 响应的消息,并相应地更改逻辑。
你会发现,如果你在 success
函数中接受一个参数,例如`success: function(o)',来自 AJAX 调用的响应的属性将有助于执行此操作。
通常,您最好查看一些使用 AJAX 的附加示例,无论是否使用 jQuery。 http://api.jquery.com/jQuery.ajax/ 尤其有用。
关于jQuery ajax()/post() & 成功,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15048489/