2016-06-27 31 views
2

對於我的網站之一,我設計與jQuery和PHP通過電子郵件發送的數據的HTML表單。 Jquery檢查空白/空白字段併爲每個字段發送警報。 表單提交完整數據後,它會發送成功警報並通過PHP發送輸入數據。
直到這一點代碼工作正常。刷新jquery的表單提交不工作

一旦數據被提交顯示&成功警報,我想HTML表單被刷新/重新加載。 但是,這種情況並沒有發生,因爲這種形式仍然與預先輸入的數據一致。
請在此幫助我。我的jquery & HTML表格如下。

jQuery的代碼(與谷歌庫2.2)

jQuery代碼

$(document).ready(function() { 
     $("#submit").click(function() { 
     var name = $("#name").val(); 
     var email = $("#email").val(); 
     var message = $("#message").val(); 
     $("#returnmessage").empty(); // To empty previous error/success message. 
     // Checking for blank fields. 
     if (name == '') { 
      alert(" Please fill your name"); 
     } else if (email == '') { 
      alert("Please fill your email"); 
     } else if (message == '') { 
      alert("Please Fill message"); 
     } else { alert("Your form submitted. We will contact you soon."); 
      $.post("xxx.php", { // To php file. 
      name: name, 
      email: email, 
      message: message 
      }, function(data) { 
      $("#returnmessage").append(data); 
      if (data == "Your form submitted. We will contact you soon.") { 
       $("#form")[0].reset(); // To reset form fields on success. 
      } 
      }); 
     } 
     }); 
    }); 

HTML表單代碼:

<form id="form" method="post" action=" "> 
    <h4>FEED-BACK FORM</h4> 
    <p id="returnmessage"></p> 
    <label>Name: </label> 
    <input type="text" id="name" /><br> 
    <label>Email: </label> 
    <input type="text" id="email" /><br> 
    <label>Message: </label> 
    <input type="text" id="message" /><br> 
    <input type="button" id="submit" value="Submit"/> 
</form> 
+0

控制檯記錄你的帖子回覆,並檢查你的回覆來自你的xxx.php。 –

+0

在檢查'if($ .trim(data)==「....」)之前,嘗試修改響應'' –

+0

顯示您的xxx.php文件源代碼。 –

回答

0

您可以通過設置清除輸入字段的值爲""

下面
$("#name").val(""); 
$("#email").val(""); 
$("#message").val(""); 
2

檢查js的

if (data == "Your form submitted. We will contact you soon.") { 
     document.getElementById('form').reset(); // To reset form fields on success. 

}

或者

if (data == "Your form submitted. We will contact you soon.") {  
    $('#form').find("input[type=text]").val(""); // To reset form fields on success. 
} 
0

問題是最有可能與您的if聲明。行$("#form")[0].reset();是正確的,將它移到if語句上方以查看它的工作。

+0

不需要從if語句移動。刪除一個=如果您使用==它將檢查數據類型,這是它不工作的原因。 如果(數據= 「提交表格,我們將盡快與您聯繫。」){ $( 「#形式」)[0] .reset段(); //在成功時重置表單字段。 } – Shine

+0

呃,那是錯誤的。您不能使用單一符號進行相等,以檢查語句是true還是false,單一符號僅用於分配值。我的建議是隻在比較東西時使用===,因爲它會比較類型和值。當你嘗試比較不同類型的數據時,你應該總是假的。嘗試在開發者控制檯中查看:「2」== 2和「2」=== 2,看看結果如何。在第一種情況下,編譯器依賴*類型強制*。 –

+0

對不起,錯誤的迴應。我懂了。小姐從這裏明白。 – Shine