jquery дубликаты ajax запрос после отправки - PullRequest
0 голосов
/ 27 марта 2020

У меня есть форма, которая открывается внутри модального окна BS4. Это содержимое формы взято из запроса AJAX, и эта часть работает нормально. Тем не менее, когда я отправляю форму (снова запрос AJAX), и она возвращает некоторую информацию, не закрывая модальные, а затем я снова отправляю, она отправляет дважды. Если я отправляю снова, он отправляет 3 раза, et c et c, каждый раз, когда еще одна отправка.

Что мне здесь не хватает? Это мой код:

<div id="empModal">
  ... modal stuff here ...    
    <div id="NewCustomer" class="col-12 view">
        <div id="NewCustomerErrors"></div>
        <form name="create_account" class="needs-validation" novalidate>
            <div class="form-group">
                ... form stuff here ...
            </div>
            <div class="pull-right mt-3"><a href="#" id="customerNewSubmit">Add new customer</a></div>
            <div class="pull-left mt-3"><a href="#" id="customerBackLogin">Back to Log In</a></div>
        </form>
    </div>
  ... modal stuff here ...
</div>

Часть 1

$(document).ready(function () {

            $("#empModal").on('click', '#customerNewSubmit', function(e) {

                $('.needs-validation').on('submit', function(e) {
                    if (!this.checkValidity()) {
                        e.preventDefault();
                        e.stopPropagation();
                    }
                    e.preventDefault();
                    e.stopPropagation();
                    $(this).addClass('was-validated');
                    var values = $(this).serialize();
                    doCreateAccount(values);
                });
                $('.needs-validation').submit();
                return false;
            });


        });

Часть 2

function doCreateAccount(values) {
            $.ajax({
                url: 'ajax_controller.php',
                type: 'post',
                dataType: 'json',
                data: values+'&act=new',
                success: function (res) {
                    if (res.result_success == true) {
                        $("#userButton").html(res.result_content);
                        $('#empModal').modal('hide');
                    } else {
                        $("#addNewCustomerErrors").html(res.result_content);
                    }
                },
            });
        }

1 Ответ

0 голосов
/ 27 марта 2020

с вашей стороны 1.

$('.needs-validation').submit();

Прокомментируйте этот код, потому что он снова отправляет форму после однократной отправки.

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