#jquery #ajax
#jquery #ajax
Вопрос:
Вызов Ajax работает без использования подтверждения оповещения. но когда я добавил подтверждение предупреждения, вызов ajax не ответил, и я не знаю, в чем проблема.
<link rel="stylesheet" href="jquery-confirm.min.css">
<script src="jquery-confirm.min.js"></script>
<form id="add-offer">
<input type="number" name="offer" class="form-control price_offered" value="" step="any">
<button class="btn btn-primary" type="submit"> Add offer </button>
</form>
$("#add-offer").on('submit', function(e) {
e.preventDefault();
$.alert({
title: 'Confirmation ',
content: ' Are you sure.... bla bla bla? ',
rtl: true,
closeIcon: true,
buttons: {
confirm: {
text: 'Confirm ',
btnClass: 'btn-blue',
action: function() {
$.ajax({
type: 'POST',
url: 'ajax/add-offer.php',
data: new FormData(this),
dataType: 'json',
contentType: false,
cache: false,
processData: false,
beforeSend: function() {},
success: function(response) {
console.log(response);
if (response.success == 1) {
alert(response.message);
} else {
alert(response.message);
}
}
});
}
},
cancel: {
text: 'Cancel ',
action: function() {}
}
}
});
});
Ответ №1:
Это может быть проблемой с контекстом функционального блока. Вы можете установить переменную data для получения в e.target
качестве параметра данных формы и попробовать. Проверьте приведенный ниже код:
$("#add-offer").on('submit', function(e) {
e.preventDefault();
$.alert({
title: 'Confirmation ',
content: ' Are you sure.... bla bla bla? ',
rtl: true,
closeIcon: true,
buttons: {
confirm: {
text: 'Confirm ',
btnClass: 'btn-blue',
action: function() {
$.ajax({
type: 'POST',
url: 'ajax/add-offer.php',
data: new FormData(e.target),
dataType: 'json',
contentType: false,
cache: false,
processData: false,
beforeSend: function() {},
success: function(response) {
console.log(response);
if (response.success == 1) {
alert(response.message);
} else {
alert(response.message);
}
}
});
}
},
cancel: {
text: 'Cancel ',
action: function() {}
}
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.4/jquery-confirm.min.js"></script>
<link rel="stylesheet" href="jquery-confirm.min.css">
<script src="jquery-confirm.min.js"></script>
<form id="add-offer">
<input type="number" name="offer" class="form-control price_offered" value="" step="any">
<button class="btn btn-primary" type="submit"> Add offer </button>
</form>
Ответ №2:
Заменить $.alert({
на alert({
См. jsfiddle.net/msteel9999/eyk0q37d/3
Комментарии:
1. Комментарий под вашим ответом является частью ответа, к которому относится мой комментарий к обзору. Поэтому, пожалуйста, обновите свой ответ, чтобы включить ссылку, и следуйте основам моего предыдущего комментария, чтобы не получить ваш ответ в разделе «ответ низкого качества» в обзоре SO.