【发布时间】:2020-04-30 15:28:30
【问题描述】:
我有一个 Asp.Net MVC Web 应用程序。我想在表单提交时调用的 API 方法的成功响应上运行一些代码。
我有以下代码。
@using (Html.BeginForm("APIMethod", "Configuration", FormMethod.Post, new { @class = "form-horizontal", id = "formID" }))
{
}
$('#formID').submit(function (e) {
$.validator.unobtrusive.parse("form");
e.preventDefault();
if ($(this).valid()) {
FunctionToBeCalled(); //JS function
}
}
但是FunctionToBeCalled()函数在APIMethod()之前被调用,但是我想在APIMethod()响应之后运行FunctionToBeCalled()函数。
所以我通过引用this 链接进行了以下更改。但是现在 APIMethod 被调用了两次。
$('#formID').submit(function (e) {
$.validator.unobtrusive.parse("form");
e.preventDefault();
if ($(this).valid()) {
//Some custom javasctipt valiadations
$.ajax({
url: $('#formID').attr('action'),
type: 'POST',
data: $('#formID').serialize(),
success: function () {
console.log('form submitted.');
FunctionToBeCalled(); //JS function
}
});
}
}
function FunctionToBeCalled(){alert('hello');}
所以我无法解决这个问题。
【问题讨论】:
-
只需传递一个参数并使用条件语句来确定一个值是否可用。一旦可用,执行操作。
success: function(text){ if(text){ FunctionToBeCalled() } } -
APIMethod被调用两次而不是 JS 方法FunctionToBeCalled() -
也添加 FunctionToBeCalled() 函数..
-
@MohammedShafeek 已更新
-
添加返回false;在关闭之前 $('#formID').submit(function (e) { 将解决..
标签: javascript c# jquery ajax asp.net-mvc