如何在发送邮件后清除文本字段

时间:2012-03-02 11:32:19

标签: jquery

我正在尝试使用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;

});

});

&LT; ------------------------- HTML ------------------- -------&GT;

<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>

1 个答案:

答案 0 :(得分:3)

我建议选择器$('#fields')是问题所在。在没有查看HTML的情况下,很难知道,但选择器“#fields”仅匹配具有字段ID的标签 - 其中应该只有1个(文档中的ID应该是唯一的)。

根据您的javascript(并假设AJAX部分有效),以下内容应该可以替代$("#fields").val("");

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

这应该以ajax-contact-form形式定位所有input和textarea标签并重置它们的值。你可能需要更复杂的东西来将任何选择标签重置为默认值。