Как предотвратить отправку формы ajax до тех пор, пока kendo.confirm не будет подтверждено? - PullRequest
0 голосов
/ 15 февраля 2019

Я создал форму ajax в asp.net mvc.Я создал обработчик 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;
        });
    }

Таким образом, теоретически форма должна быть представлена ​​только в случае подтверждения.Вместо этого форма отправляется, и я нажимаю на точку останова в контроллере, прежде чем выбирается какая-либо опция.Любая помощь будет принята с благодарностью.

Обновление: поэтому я попытался использовать return в моем обработчике OnBegin, и у меня все еще тот же результат

OnBegin="return OnAjaxBegin()"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...