I don't know if this is possible, but is there a possibility to activate or create a vertical scroll bar in a swal SweetAlert alert mode?
The problem is that I am receiving a very large list of errors and exceeds the modal display limit.
$.ajax({
url: "/financeiro-gerenciar/remover-financeiro",
type: "POST",
data: { ids: selecedtRows },
traditional: true,
success: function (result) {
stopLoadGlobal();
//Desmarcar o select do header
$("#dtFinanceiroIndex .selectable-all").prop('checked', false);
reload_dtFinanceiroIndex();
if (result.success) {
swal("Sucesso", result.message + " :)", "success");
return false;
}
else {
//console.log(result.errors.value.errors)
if (!result.success) {
var errosRecebidos = result.message + "\n";
$.each(result.errors.value.errors, function (key, value) {
errosRecebidos = errosRecebidos + '\n' + value
});
}
swal("Atenção", errosRecebidos + " :(", "error");
return false;
}
},
error: function () {
stopLoadGlobal();
alert("Oops! Algo deu errado.");
return false;
}
});
CSS:
.sweet-overlay {
/*z-index: 100000000000 !important;*/
z-index: 999999999 !important;
}
.sweet-alert {
/*z-index: 100000000000 !important;*/
z-index: 999999999 !important;
}
.sweet-alert .swal-text {
max-height: 6em; /* To be adjusted as you like */
overflow-y: scroll;
width: 100%;
}
From the swal documentation, you can customise the theming... To have a scroll bar in the swall body, I would use the swal-text
class and define a max-height
and overflow-y:scroll
to it..
// simulating the Ajax result here...
let errosRecebidos = ""
// supposing you have 324 errors lol!
for(i=0;i<324;i++){
errosRecebidos += "Error #"+i+"\n"
}
swal("Atenção", errosRecebidos + " :(", "error")
.swal-text{
max-height: 6em; /* To be adjusted as you like */
overflow-y: scroll;
width: 100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js"></script>
EDIT using SweetAlert for Bootstrap, the idea is the same, but the class name is different. Here, instead of .swal-text
, it's .sweet-alert
and the "message" container (aside the title and buttons) is a p
.
// simulating the Ajax result here...
let errosRecebidos = ""
// supposing you have 324 errors lol!
for(i=0;i<324;i++){
errosRecebidos += "Error #"+i+"\n"
}
swal("Atenção", errosRecebidos + " :(", "error")
.sweet-alert p{
max-height: 6em; /* To be adjusted as you like */
overflow-y: scroll;
width: 100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-sweetalert/1.0.1/sweetalert.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-sweetalert/1.0.1/sweetalert.css">