Bootstrap modal onload event

58,918

Solution 1

Per the documentation, you can listen to the show or shown events.

From The Documentation:

show.bs.modal => This event fires immediately when the show instance method is called.

shown.bs.modal => This event is fired when the modal has been made visible to the user (will wait for CSS transitions to complete).

$('#myModal').on('show.bs.modal', function () {
  // do something…
})

Solution 2

What I've found to be the best way to do this is to add the onclick attribute to the html element that calls the modal.

<button type="button" onclick="PopulateAddModal()" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#AddModal">Add</button>

Then in your javascript..

    function PopulateAddModal() {
      //do stuff here...
      }

This will ensure that your code is ran as soon as the modal is called. Otherwise, the javascript code will not run until the modal has completely finished it's "fade-in" animation.

Share:
58,918
bookthief
Author by

bookthief

Updated on July 19, 2022

Comments

  • bookthief
    bookthief almost 2 years

    Does a bootstrap modal have an onload event? I want to call a http GET request when the modal is opened to populate the modal with data from a rest api. I have a form in the modal and I have called the GET function on the onload event of the form, but it doesn't work.

    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
            <h4 class="modal-title" id="myModalLabel">Agent details:</h4>
          </div>
          <div class="modal-body">
    
    <form onload="getData()" style= "font-size: 16pt">