2014-02-15 184 views
0

我知道这已经被问了很多,我在论坛上搜索并测试了几个答案。 但这似乎无法工作,但看起来相当容易解决。我正在尝试发布简单的联系表单,并在验证/发送后返回失败/成功值。

但是这个响应变量不起作用! 在此先感谢。

$(document).ready(function(){ 
    $('#contact-send').click(function() { 
     $.post("http://talaguim.com/contato-send.php", $("#mycontactform").serialize(), function(response) { 
      if (response == "ok") { 
       mensagem = "Sua mensagem foi enviada."; 
       type(mensagem); 
      } else { 
       mensagem = "Ops, o e-mail é inválido, verifique de novo."; 
       type(mensagem); 
      } 
     }); 
     return false; 
    }); 
}); 

我的HTML是:

<form action="" method="POST" id="mycontactform"> 
     <div id="contact-form"> 
      <textarea id="contact-text" name="message"></textarea> 
      <div class="contact-linhabaixo"> 
       <input type="text" class="contact-input" name="name" id="name" value="Nome"><input type="text" class="contact-input" name="email" id="email" value="E-mail"><input type="submit" class="contact-btn" id="contact-send" value="Enviar"> 
      </div> 
     </div> 
    </form> 
+0

当我的URL,它返回'nein'。这是由于一些条件逻辑? –

+0

它返回nein,因为字段验证正在检查电子邮件字段而没有发现任何内容。 'Nein'的意思是没有在德国:)。 当电子邮件字段正确时,返回'ok'。 – user3314599

回答

0

可以添加一个alert()console.log,看看什么是在响应返回?它可能是一个对象而不是字符串,或者它可能有空白区域,您也可以尝试.trim()

你也可以尝试加入误差函数您的来电:

$(document).ready(function(){ 
     $('#contact-send').click(function() { 
      $.post("http://talaguim.com/contato-send.php", $("#mycontactform").serialize(), function(response) { 
       if (response == "ok") { 
        mensagem = "Sua mensagem foi enviada."; 
        type(mensagem); 
       } else { 
        mensagem = "Ops, o e-mail é inválido, verifique de novo."; 
        type(mensagem); 
       } 
      }).fail(function(msg) { 
       alert(msg.status + " " + msg.statusText); 
      }); 
     return false; 
    }); 
}); 
+0

不完全是答案吗?属于imo的评论。 –

+0

我以前试过一个警报,它根本没有出现任何东西。 但是,通过您提供的这些代码,会出现一个带有“0错误”的警报。 它可能是什么? – user3314599

+0

你可能需要发布你的php来检查它在语法上是否正确,或者检查你发布的数据是否是php所期望的。您也可能会遇到同源策略,或者拥有php的站点没有启动。 – Popo