У меня есть форма, которая открывается внутри модального окна 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);
}
},
});
}