gpt4 book ai didi

javascript - AJAX 成功回调只执行第一个函数

转载 作者:行者123 更新时间:2023-11-29 19:46:54 25 4
gpt4 key购买 nike

我有一个简单的表单提交,成功后我会收到一个警报和一个清除表单的电话。我确实收到了警报,信息已成功添加到数据库中,但没有执行第二次调用——清除表单。我确定这很简单,我做错了,但我想不通。

$('#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();

}

此外,提交按钮只是一个按钮,而不是提交输入。 preventDefault() 有必要吗?我是新来的。

最佳答案

jQuery 没有 .reset() 方法。

改为这样做:

$('#submit_form_contact')[0].reset();

这会获取第一个 DOM 元素,并调用 native .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();

另一种方法是将提交按钮设置为 ajax 调用的 context:,然后使用其 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();
}
});

关于javascript - AJAX 成功回调只执行第一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18937283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com