【发布时间】:2020-05-14 15:57:19
【问题描述】:
我是 JQuery 和 ajax 的新手,我想在从控制器取回数据后禁用表单提交(我使用的是 Asp.net 核心 MVC)。事情是,即使我取消提交,它仍然提交如下所示:
$("form").submit(function (e) {
var link = '@Url.Action("Action", "Controller")';
var args = {
arg1: Elem1.val(),
arg2: Elem2.val()
};
$.ajax({
type: "GET",
url: link,
data: args,
dataType: "json",
success: function (data) {
alert(data.canacess); //Shows False
if (data.canacess== true) {
AllEnable();
}
else { //Goes here
e.preventDefault(); //Dont do this
alert(data.erromessage); //Do this
}
},
error: function () {
alert("Error. Kontaktujte správce.");
return;
}
});
});
我认为它必须与 ajax 做一些事情,因为它可以在代码中的任何其他地方工作。
感谢您的帮助!
【问题讨论】:
-
e.preventDefault()需要在submit函数处理程序的范围内调用。现在你正在 AJAX 回调处理程序中调用它,这已经太晚了,无法产生任何效果。 -
好的,在我决定是否提交之前,有什么方法可以阻止提交表单?
-
当然。我为你添加了答案
-
这能回答你的问题吗? How to stop form submit during ajax call 忽略接受的答案并查看其他类似this one
标签: javascript jquery ajax asp.net-mvc