-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLoad Spinner dentro do Botão
71 lines (61 loc) · 2.83 KB
/
Load Spinner dentro do Botão
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
// Botão
<button type="submit" id="submitButton" class="btn btn-primary btn-block" href="/">
<span class="spinner-border text-danger spinner-border-sm" style="display: none;"></span>
<span style="margin-left: 5px;">Texto</span>
</button>
// AJAX
<script>
$(document).ready(function () {
var $form = $("#AJAX_CadastrarPedido");
// Spinner Loader
var $submitButton = $("#submitButton");
$(document).ajaxStart(function () {
$submitButton.find(".spinner-border").show(); // Mostrar o spinner quando uma requisição AJAX começar
$submitButton.prop("disabled", true); // Desabilitar o botão durante a ação
});
$(document).ajaxStop(function () {
$submitButton.find(".spinner-border").hide(); // Ocultar o spinner quando todas as requisições AJAX terminarem
$submitButton.prop("disabled", false); // Habilitar o botão após a ação
});
// Spinner Loader
$form.on('submit.CadastrarPedido', function (e) {
e.preventDefault();
// Se o usuário clicou em "Sim, salvar!", envie o formulário
var form = $(e.currentTarget)[0];
var formData = new FormData(form);
$.ajax({
url: form.action,
type: "POST",
data: formData,
contentType: false,
cache: false,
processData: false,
success: function (data) {
try {
if (data && data.success) {
notyf.success(data.message);
if (data.redirectTo) {
// Aguarde por um curto período de tempo antes de redirecionar
setTimeout(function () {
var redirectToUrl = '@Url.Content("~")' + data.redirectTo;
window.location.href = redirectToUrl;
}, 3000); // Aguarda por 3 segundo (3000 milissegundos) antes de redirecionar
}
}
else {
notyf.error(data.message);
}
} catch (e) { }
},
error: function (xhr, status, error) {
try {
console.log(xhr.responseText);
notyf.error("Houve um problema ao realizar as alterações.");
} catch (e) { }
}
});
});
});
});
</script>