我有一个非常简单的电子邮件发送表单,只有一个电子邮件字段和一个文本区域。

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/

10-12 12:40
查看更多