I define my modal:
<div class="modal fade" aria-hidden="true" role="dialog" id="modal" tabindex="-1"> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content"> <div class="modal-header"> <button id="btnCloseModal" hidden type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> <strong>Waiting</strong> </div> <div class="modal-content"> <div> Please don't close your tab! </div> <div class="d-flex justify-content-center"> <div class="spinner-border" role="status"> <span class="sr-only">Loading...</span> </div> </div> </div> <div class="modal-footer"> <strong>Loading...</strong> </div> </div> </div> </div>
then I create a function:
var StopLoadingAnimation = function () { $('#modal').on('show.bs.modal', function (e) { console.log("trigger show"); $("#btnCloseModal").trigger("click"); }); $('#modal').on('shown.bs.modal', function (e) { console.log("trigger"); $("#btnCloseModal").trigger("click"); }); $('#modal').on('hidden.bs.modal', function (e) { console.log("event"); $(e.currentTarget).off('shown'); $(e.currentTarget).off('show'); }); $("#btnCloseModal").trigger("click"); }
My idea is that after success, ajax will call the StopLoadingAnimation function, which will trigger the click event on the btnCloseModal element (as if you press the btnCloseModal button when you close the modal window)
source share