无法理解在Ajax提交后如何实现表单重置。我尝试在this.reset();
函数后调用success
,但我仍然得到:
form-submit.js:11 Uncaught SyntaxError: Unexpected identifier
它可以工作,但是我错过了什么/没有正确地做了什么让我一直给这个错误?
(如果这是转贴,请指导我正确的问题,几天后我还没有找到答案来解决我的问题。谢谢。)
$( "form" ).on( "submit", function( event ) {
event.preventDefault();
console.log( $( this ).serialize() );
$.ajax({
type: "POST",
url: 'https://mysite.somewebaddress.com',
data: $( this ).serialize(),
success: function() {
alert('Mail Sent');
}
});
$( "form" )[0].reset();
//this.reset();
});
答案 0 :(得分:1)
在成功回调中,this
将引用Ajax请求本身。
此外,如果您尝试在Ajax块之后(外部)重置表单,则表单将在您提交后立即重置。
相反,尝试创建一个具有不同名称的变量,并添加complete
回调(在Ajax请求完成后触发,无论成功/失败。
可能是这样的:
$("form").on("submit", function( event ) {
event.preventDefault();
console.log( $( this ).serialize() );
var my_form = this;
$.ajax({
type: "POST",
url: 'https://mysite.somewebaddress.com',
data: $( this ).serialize(),
success: function() {
alert('Mail Sent');
// my_form.reset() // or reset on success?
},
complete: function() {
my_form.reset() // reset after submit
}
});
});
答案 1 :(得分:0)
$('#form').reset();
在回复后使用