2012-09-05 34 views
0

我有一個表格,我試圖用POST提交。當我去趕上POST變量時,什麼都沒有發送。爲什麼這個POST不會被髮送到w/jquery中?

<?php require_once("../includes/initialize.php"); ?> 
<html><head> 
<link href="css/style.css" rel="stylesheet" type="text/css" /> 
<script src="jquery-1.8.1.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $('form').submit(function (e) { 
     var $this = $(this); 
     e.preventDefault(); // This prevents the form submission. 

     $("#messageSent").show("slow"); 
     $this.closest('#contactForm').slideUp('slow', function() { 
      $this[0].submit(); // Actual submission. 
     });     
    }); 

    $("#contactLink").click(function(){ 
     if ($("#contactForm").is(":hidden")){ 
      $("#contactForm").slideDown("slow"); 
     }else{ 
      $("#contactForm").slideUp("slow"); 
     } 
    }); 

}); 
</script></head><body> 
<?php 
if(isset($_POST['signupSubmit'])){ 
echo "Post is set"; 
echo $_POST['name'], "<br />"; 
echo $_POST['email']; 
}else{ 
echo "post is not set"; 
} 
if(isset($_POST['signupSubmit'])){ 
    $signup = new Signup(); 
    $signup->name = $_POST['name']; 
    $signup->email = $_POST['email']; 
    if($signup->save()) { 
     $session->message("We will contact you with details."); 
    } else { 
     $session->message("Failed", $signup->errors); 
    } 
} 
echo output_message($message); 
?> 
    <div id="contactFormContainer"> 
     <div id="contactLink"></div> 
     <div id="contactForm"> 
      <form action="test2.php" enctype="multipart/form-data" method="post"> 
      <fieldset> 
       <label for="name">Name *</label> 
       <input id="name" type="text" name="name" /> 
       <label for="email">Email address *</label> 
       <input id="email" type="text" name="email" /> 
       <input id="sendMail" type="submit" name="signupSubmit" /> 
       <span id="messageSent"></span> 
      </fieldset> 
      </form> 
     </div> 
    </div> 

</body> 
</html> 

任何幫助,將不勝感激!

+1

你在這裏發佈的內容的文件名是什麼? – esqew

+1

'e.preventDefault()'防止表單子目錄 –

+0

test2.php是文件名 –

回答

2

這是因爲當您使用$this[0].submit();提交表單時,它仍然運行提交處理程序,該處理程序無條件地阻止表單提交。設置一些標誌,以便表單在動畫之後提交。

$('form').submit(function (e) { 
    var $this = $(this); 
    if (!$this.data('afteranimation')){ 
     $("#messageSent").show("slow"); 
     $this.closest('#contactForm').slideUp('slow', function() { 
      $this.data('afteranimation', true); 
      $this.submit(); // Actual submission. 
     });     
     e.preventDefault(); // This prevents the form submission. 
    } 

}); 
+0

)你可以請共享你認爲我應該使用的旗幟?對不起,但我是一個完整的noob與JS –

+0

我做到了這一點:http://jsfiddle.net/d9AfJ/8/但它仍然不是張貼不幸。=( –

+0

@AlexWaters你發佈的小提琴的作品,有什麼問題? – Musa

相關問題