[英]AJAX success callback only carrying out first function
我有一個簡單的表單提交,成功后我有一個警報和一個電話要求清除表單。 我確實收到了警報,信息已成功添加到數據庫中,但是第二次調用(要清除表單)沒有執行。 我敢肯定,這是我做錯的簡單事情,但我無法弄清楚。
$('#contact_submit').click(function(e){
if ($("#submit_form_contact").valid()) {
var post_data = {
"name" : $('#name').val(),
"email" : $('#email').val(),
"inquiry" : $('#inquiry_dropdown option:selected').text(),
"message" : $('#message').val()
};
$.ajax({
type: "POST",
url: "process-contact.php",
data: post_data,
success: function(data) {
alert("Thank you for contacting us.");
$('#submit_form_contact').reset();
}
});
e.preventDefault();
}
同樣,提交按鈕只是一個按鈕,而不是提交輸入。 是否有必要阻止Default()? 我是新來的。
jQuery沒有.reset()
方法。
改為這樣做:
$('#submit_form_contact')[0].reset();
這將獲取第一個DOM元素,並調用本機.reset()
。 如果有可能找不到表格,請測試該元素。
var f = $('#submit_form_contact')[0];
if (f)
f.reset();
當然,您實際上並不需要jQuery通過ID來獲取元素,特別是如果您不打算使用任何jQuery方法時。
var f = document.getElementbyId('submit_form_contact');
if (f)
f.reset();
另一種選擇是將提交按鈕設置為context:
ajax調用,然后使用其form
屬性。
$.ajax({
context: this,
type: "POST",
url: "process-contact.php",
data: post_data,
success: function(data) {
alert("Thank you for contacting us.");
this.form.reset();
}
});
這條線也可以使用
$("#submit_form_contact").trigger('reset');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.