0

我有一个最初为$(form).submit(). 我必须修改它才能继续工作,$("#savebutton").click()因为主视图中已经有一个 form.sumbit() 函数。唯一的问题是,当单击按钮并且状态有效时,表单停止提交。旧代码

$(document).ready(function () {
    $("form").submit(function (e) {
        e.preventDefault(); //prevent default form submit
        $.ajax({
            url: '@Url.Action("HasJobInProgress", "ClientChoices")/',
            data: { id: '@Model.ClientId' },
            success: function (data) {
                showMsg(data);
            },
            cache: false
        });
    });
});

function showMsg(hasCurrentJob) {
    if (hasCurrentJob == "True") {
        alert("The current clients has a job in progress. No changes can be saved until current job completes");
        return false;
    } else {
       $("form").unbind('submit').submit();
    }
}

当前代码

$(document).ready(function () {

    $("#saveButton").click(function (e) {
        e.preventDefault(); //prevent default form submit
        $.ajax({
            url: '@Url.Action("HasJobInProgress", "Shared")/',
            data: { id: '@Model.ClientId' },
            success: function (data) {
                showMsg(data);
            },
            cache: false
        });
    });

    function showMsg(hasCurrentJob) {
        if (hasCurrentJob == "True") {
            alert("The current clients has a job in progress. No changes can be saved until current job completes");
            return false;
        } else {
            $("form").submit();
        }
        return true;
    }
});

更新(还是不行)

$(document).ready(function () {

    $("#saveButton").click(function (e) {
        if ($(e.currentTarget).data('shouldSubmit')) return;
        e.preventDefault(); //prevent default form submit
        $.ajax({
            url: '@Url.Action("HasJobInProgress", "Shared")/',
            data: { id: '@Model.ClientId' },
            success: function (data) {
                showMsg(data, e);
            },
            cache: false
        });
    });

    function showMsg(hasCurrentJob, e) {
        if (hasCurrentJob == "True") {
            alert("The current clients has a job in progress. No changes can be saved until current job completes");
            return false;
        } else {
            $(e.currentTarget).data('shouldSubmit', true);
            $("#saveButton").click();
            $(e.currentTarget).data('shouldSubmit', null);
        }
        return true;
    }
});
4

1 回答 1

1

这个答案使用了一种可能有效的技术。基本上以编程方式再次单击相同的按钮,并使用标志来确定它是否在确认方法中被单击(showMsg在您的情况下)。

于 2012-04-12T15:41:08.173 回答