首页 > 解决方案 > 在确认 kendo.confirm 之前,如何防止提交 ajax 表单?

问题描述

我在 asp.net mvc 中创建了一个 ajax 表单。我创建了一个 OnBegin 处理程序。在我的 OnBegin 处理程序中,我调用 kendo.confirm。但是,当这用于处理 OnBegin 事件时,表单提交在选择选项之前完成。

所以我试图通过解决方法来做到这一点。本质上是使用一个按钮来调用确认,然后从 jQuery 提交表单。这感觉像是一个相当老套的工作。而且当我这样做时,我发现那里有一些 ModelState 问题。通过使用正常的 Asp.Net 提交方法可以解决这些问题。

 @using (Ajax.BeginForm("Save", "Form",new AjaxOptions {   
                                 HttpMethod = "POST", 
                                 OnSuccess = "SubmitSuccess", 
                                 OnFailure = "SubmitFailure",
                                 OnBegin="OnAjaxBegin"  }))
{
 ....
}
    function SubmitSuccess() {                           
        window.location.href = '@Url.Action("Index","Home")';
    }

    function SubmitFailure() {            
        kendo.alert("....");
        kendo.ui.progress($("#Form"), false);
    }  

    function OnAjaxBegin() {
        kendo.confirm("Please confirm that a copy of the sample invoice has been donwloaded and saved").then(function ()                
        {                
            kendo.ui.progress($("#Form"), true)
            return true;
        }, function() {
            return false;
        });
    }

所以理论上只有在确认后才能提交表格。相反,提交了表单,并且在选择任何选项之前我在控制器中点击了断点。任何帮助将不胜感激。

更新:所以我尝试在我的 OnBegin 处理程序中使用 return 并且我仍然有相同的结果

OnBegin="return OnAjaxBegin()"

标签: c#asp.net-mvckendo-ui

解决方案


推荐阅读