我正在尝试使用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>
答案 0 :(得分:3)
我建议选择器$('#fields')
是问题所在。在没有查看HTML的情况下,很难知道,但选择器“#fields”仅匹配具有字段ID的标签 - 其中应该只有1个(文档中的ID应该是唯一的)。
根据您的javascript(并假设AJAX部分有效),以下内容应该可以替代$("#fields").val("");
$("#ajax-contact-form").find('input, textarea').val("");
这应该以ajax-contact-form形式定位所有input和textarea标签并重置它们的值。你可能需要更复杂的东西来将任何选择标签重置为默认值。