jquery - Ajax.BeginForm 在 chrome MVC 5 中不起作用

标签 jquery ajax google-chrome asp.net-mvc-5 ajax.beginform

我目前正在尝试在 MVC 5 中实现 Ajax 表单。

@using (Ajax.BeginForm("Requirement", "Purchase", null, new AjaxOptions { OnSuccess = "redirectionClick", OnFailure = "Retry", HttpMethod = "POST" }, new { id = "RequirementForm", autocomplete = "off" }))
{
   //Various input fields
   @Html.AntiForgeryToken()
   <input type="submit" value="Submit" class="btn btn-primary EqualSized" id="SubmitBtn" style="width:30%">
   <input type="button" value="Reset" id="Reset" class="btn btn-primary EqualSized" style="width:30%">
}

script标签下的函数:

function CloseModals() {
    $('.modal').modal('hide');
    $('body').removeClass('modal-open');
    $('div.modal-backdrop').remove();
}

function redirectionClick() {
    CloseModals();
    bootbox.alert("Saved Successfully!");
    $.ajax({
        url: "@Url.Action("Requirement", "Purchase")",
        async: false,
        success: function (result) {
            $('#PageData').html(result);
        }
    })
}

function Retry() {
    alert('Unknown Error, Please try submitting the form again!');
    $('#SubmitBtn').attr('disabled', false);
}

$('#SubmitBtn').click(function () {
    if ($('#RequirementForm').valid())
        $(this).attr('disabled', true);
});

还有我的 Controller :

[HttpPost]
[ValidateAntiForgeryToken]
public void Requirement(Requirement Details)
{
  //Logic
}

以上代码适用于 FireFox 和 IE,但不适用于 Chrome。我有什么遗漏的吗?

最佳答案

如果提交按钮被禁用,我认为它无法提交表单,您的点击处理程序将在提交处理程序之前触发。

尝试将您的点击处理程序更改为此

$('#SubmitBtn').click(function () {
    if ($('#RequirementForm').valid())
         $(this).prop('disabled', true).closest('form').submit();
});

另一种方法是处理表单上的提交,并在表单有效时禁用其中的按钮。您可以使用 onbegin 或 Submit 事件来实现

关于jquery - Ajax.BeginForm 在 chrome MVC 5 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31823938/

相关文章:

jquery - 使用 javascript 从 Controller 获取 JSON 以显示在 View 中

javascript - AJAX最后运行的功能,如何让它首先运行

javascript - IE7 和 IE8 使用 ajax 执行函数时出错

javascript - 如何将使用 ImageService 提供的图像作为背景的 Canvas 元素转换为可下载图像?

javascript - 响应式左侧边栏打开关闭

jQuery 正文背景图像旋转器

javascript - 通过ajax传递序列化表单和二维数组

php - 将新字段附加到现有数组

javascript - 在 google chrome 上下载大文件(最大 15 mb)时出现问题

javascript - window.opener 不适用于 Firefox 和 Chrome,但适用于 IE