FORM:始终显示错误代码。为什么?

时间:2015-07-17 19:18:25

标签: forms submit

虽然我收到的电子邮件正确但显示的消息是错误消息。为什么会发生?

$(document).ready(function(){
  $("#send").click(function(){
    var name   = $("#name").val();
    var email  = $("#email").val();
    var message  = $("#message").val();   

$.ajax({
type: "POST",
url : "contact.php",    
data: "&name=" + name + "&email=" + email + "&message=" + message,
         success: function(data){    
          if(data == 'success'){
            $("#mail_success").delay(500).fadeIn(500);
            $("#send").attr({"disabled" : "true", "value" : "Message Sent" });
          }else{
            $("#mail_failed").delay(500).fadeIn(500);
            $("#send").attr({"disabled" : "false", "value" : "The Message was not Sent" });

          }     
         }  
       }
      );  
    }
        return true;                      
  });    
});

2 个答案:

答案 0 :(得分:0)

在我看来,在成功发送时,您正在删除“已禁用”属性,而不是添加它。此外,您应该考虑使用其他标记,而不是“提交”输入类型,因为您将覆盖默认的behviour。

答案 1 :(得分:-1)

从技术上讲,disabled不是属性,而是属性。因此,您不应使用removeAttr("disabled")启用该按钮。请改用prop("disabled", false)。要在单击按钮时禁用该按钮:

$("#send").click(function() {        //When the button is clicked...
    $(this).prop("disabled", true);  //...disable the button.
    ...

显示成功消息:

if(data == 'success') {              //If it was successfull...
    $("#mail_success").fadeIn(500);  //...display the message.
    ...

您在</div>之前也错过了</form>。最后,由于您要覆盖按钮提交行为(如@Mark所指出),您应该使用<input type="button">而不是<input type="submit">