Форма отправить несколько раз при многократном нажатии кнопки - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь создать исключение, отправив форму, используя AJAX, и исключение также создается, когда кнопка

<button type="button" onclick="submitForm()" class="btn btn-s-md btn-primary saveButton mb-10 "><i class="fa fa-save fa-fw"></i>Save</button>
Нажатие

и клик по функции function submitForm().

Проблема в том, что при многократном нажатии кнопки форма также отправляется, чего я не хочу.

Ниже моя форма

<form asp-action="CreateException" asp-controller="Attorney" method="post" role="form" enctype="multipart/form-data" id="attorneyExceptionForm">
        <div class="panel panel-default">
            <div class="panel-body">
                <div class="row">
                    <div class="col-md-3 col-lg-3 col-sm-12">
                        <div class="form-group">
                            <label asp-for="Description" class="control-label ">Description<span class="requAstrik">*</span></label>
                            <input asp-for="Description" class="form-control " />
                            <span asp-validation-for="Description" class="text-danger"></span>
                        </div>
                    </div>
                    <div class="col-md-3 col-lg-3 col-sm-12">
                        <div class="form-group">
                            <label asp-for="Exception" class="control-label ">Exception<span class="requAstrik">*</span></label>
                            <select id="slctExceptionA" class="form-control select2" asp-for="Exception" style="color: #444 !important;width:100%;" asp-items="@(new SelectList(@ViewBag.ExcsList, "ExcId", "ExcDescription" ))"></select>

                            <span id="attorneyExceptionError" asp-validation-for="Exception" class="text-danger"></span>
                        </div>
                    </div>                       
                </div>                   
            </div>
        </div>           
        <div class="form-group">
            <button type="button" onclick="submitForm()" class="btn btn-s-md btn-primary saveButton mb-10 "><i class="fa fa-save fa-fw"></i>Save</button>
        </div>
    </form>

Ниже моя функция js

<script>
function submitForm() {
    debugger;
    var datastring = $("#attorneyExceptionForm").serialize();
    var validForm = $("#attorneyExceptionForm").valid();
    if (!validForm) { return false; }
    $.ajax({
        type: "POST",
        url: "/Attorney/CreateAttorneyException",
        data: datastring,
        dataType: "json", 
        success: function (data) {
            debugger;
            if (data.success.Result) {
                debugger;
                $("#myModal5").modal('hide');
                var grid = $("#AttorneyExceptionGrid").dxDataGrid('instance');
                grid.refresh();
                showNotification("Exception saved successfully", "success");
            }
            else {
                debugger;
                showNotification(data.success.MessageBody + " is required ", "warning");
            }
        },
        error: function (data) {
            debugger;
            showNotification("Please input the required field", "warning");
        }
    });
}
</script>

1 Ответ

0 голосов
/ 07 сентября 2018

Вы можете отключить кнопку при первом нажатии и включить ее снова, когда придет ответ ajax.

<button type="button" onclick="submitForm(this)" class="btn btn-s-md btn-primary saveButton mb-10 "><i class="fa fa-save fa-fw"></i>Save</button>

function submitForm(e) {
   $(e).prop("disabled", true);
  //more code
}

И включите его снова в методе ajax успеха или ошибки.

 $(e).prop("disabled", false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...