【发布时间】:2018-06-26 19:11:25
【问题描述】:
我有一个带有 ajax 调用的表单和 jquery 提交事件。单击提交后,此表单将重新提交。我不想禁用该按钮只是不想让它重新提交表单。尝试在提交事件后添加“return false”,但没有成功
window.addEventListener("load", () => {
$(".bmlf-form").on("submit", event => {
event.preventDefault();
const values = $(event.target).serializeArray();
$.ajax({
url: `apiURL`,
type: 'Post',
crossDomain: true,
async: true,
datatype: 'json',
data: JSON.stringify(objectifyForm(values)),
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert("Thank you");
$(".bmlf-form")[0].reset();
},
error: function () {
alert("Please try again");
}
});
});
});
【问题讨论】:
-
它应该可以工作,为什么没有调用代码? jQuery 真的在寻找表单吗?方法被调用了吗?
-
我觉得这个问题不完整。您何时不希望提交再次发生?我假设如果 ajax 通过错误方法,您可能希望允许他们再次提交,不是吗?
-
该方法被调用并且一切正常,但是一旦我单击提交按钮,它就会再次被单击。换句话说,提交按钮上发生了多次点击。 @epascarello
-
@Taplar 是的。如果出现问题,他们应该能够纠正表格中的错误并重新提交。但是一旦一切都很好并且我提交了它,它会被提交一次,而不是立即再次提交,而无需我做任何事情。只需单击一次即可在提交按钮上多次提交。
-
然后发生了其他事情。根据您提供的代码,不会发生二次提交。
标签: javascript jquery html ajax forms