我有一个窗体,现在会弹出一个确认对话框(您要继续),但它同时发送给我的控制器,无论您单击是还是否,该窗体都会开始处理。如何暂停表单提交,直到显示/选择javascript确认之后。

 @using (Html.BeginForm("Process", "Home", FormMethod.Post,
 new { id ="MyForm" })) {
    @Html.TextBoxFor(m => m.Name);
    // other form controls...
    <input id="Submit" type="submit" value="Apply Changes" />
 }


javascript :(使用jquery-ui)

 $(function () {
        $("#Confirm").dialog({
            autoOpen: false,
            buttons: {
                "Ok": function() {
                    $(this).dialog("close");
                    $('#MyForm').submit();
                    return true;
                },
                Cancel: function() {
                    $(this).dialog("close");
                    event.preventDefault();
                    return false;
                }
            }
        });

        $("#Submit").click(function () {
            $("#Confirm").dialog("open");
        });
    });

最佳答案

立即阻止默认操作,然后按“确定”按钮触发提交。

 $(function () {
    $("#Confirm").dialog({
        autoOpen: false,
        buttons: {
            "Ok": function() {
                $(this).dialog("close");
                $('#MyForm')[0].submit();
            },
            Cancel: function() {
                $(this).dialog("close");
            }
        }
    });

    $("#MyForm").submit(function (e) {
        e.preventDefault();
        $("#Confirm").dialog("open");
    });
});

关于jquery - 确认暂停表单提交,直到按下确定,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17238994/

10-14 17:28
查看更多