10

Un modal bootstrap ha un evento onload? Voglio chiamare una richiesta http GET quando viene aperta la modal per popolare la modale con i dati di una pausa API. Ho un modulo nel modale e ho chiamato la funzione GET sull'evento onload del modulo, ma non funziona.Evento onload modale Bootstrap

<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"> 
+2

Leggere attentamente la documentazione prima di fare domande qui. Non è che non vogliamo aiutare, è solo che vogliamo che tu provi a farlo da te prima. – Blazemonger

risposta

31

Per documentation, è possibile ascoltare lo spettacolo o gli eventi mostrati.

dalla documentazione:

show.bs.modal => incendi Questo evento immediatamente quando il metodo show esempio viene chiamato.

shown.bs.modal => Questo evento viene generato quando la modal è stata resa visibile all'utente (attenderà il completamento delle transizioni CSS).

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

sei un dattilografo migliore di me :) –

+1

grazie per la risposta. Mi hai aiutato molto. – eg16

0

Quello che ho trovato per essere il modo migliore per farlo è quello di aggiungere l'attributo onclick per l'elemento HTML che chiama il modale.

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

Poi, nel tuo javascript ..

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

Questo farà sì che il codice è stato eseguito non appena il modale viene chiamato. In caso contrario, il codice javascript non verrà eseguito finché la modale non avrà completato l'animazione "fade-in".