2012-03-02 38 views
1

我正嘗試使用ajax聯繫表單向我發送電子郵件,但是我希望在成功發送電子郵件後清除文本字段。我試着將值設置爲val(「」),但它似乎沒有工作。我怎樣才能使這個工作?如何在發送消息後清除我的文本字段

$(document).ready(function(){ 
$("#ajax-contact-form").submit(function(){ 

// 'this' refers to the current submitted form 
var str = $(this).serialize(); 

    $.ajax({ 
    type: "POST", 
    url: "inc/contact.php", 
    data: str, 
    success: function(msg){ 

$("#note").ajaxComplete(function(event, request, settings){ 

if(msg == 'OK') // Message Sent? Show the 'Thank You' message 
{ 
result = '<div class="notification_ok">Your message has been sent. Thank you!</div>'; 
$("#fields").val(""); 
} 
else 
{ 
result = msg; 
} 

$(this).html(result); 

}); 

} 

}); 

return false; 

}); 

}); 

< ------------------------- HTML ---------------- ---------->

<center> 

<center><h3>A Tableless Contact Form (JQuery & AJAX)</h3></center> 

<div align="left" style="width: 500px;"> 

<fieldset class="info_fieldset"><legend>Contact</legend> 

<div id="note"></div> 
<div id="fields"> 

<form id="ajax-contact-form" action="javascript:alert('success!');"> 

<INPUT class="textbox" type="text" name="name" value=""><br /> 

<INPUT class="textbox" type="text" name="email" value=""><br /> 

<INPUT class="textbox" type="text" name="subject" value=""><br /> 

<TEXTAREA class="textbox" NAME="message" ROWS="5" COLS="25"></TEXTAREA><br /> 

<INPUT class="button" type="submit" name="submit" value="Send Message"> 
</form> 

</div> 

</fieldset> 

</div> 

</center> 
+0

請發佈相應的HTML標記。如果你不顯示代碼,很難給你提供幫助。 – 2012-03-02 11:35:36

+0

如果我理解你的問題,那麼你應該打電話給你$(「#fields」)。val(「」);內部成功回調函數。 – 2012-03-02 11:40:34

回答

3

我建議你的選擇器$('#fields')是問題所在。不用看你的HTML就很難知道,但是選擇器'#fields'只會匹配帶有ID字段的標籤 - 其中應該只有1個(文檔中的ID應該是唯一的)。

根據您的JavaScript(並假設AJAX部分作品),那麼下面應該作爲替代工作的$("#fields").val("");

$("#ajax-contact-form").find('input, textarea').val(""); 

這應該針對內的Ajax的非接觸的所有輸入和textarea的標籤形式表單並重置其值。您可能需要更復雜一些才能將選擇標記重置爲默認值。