È possibile utilizzare l'evento onsubmit
della forma della tua pagina. Ciò accade prima che il modulo venga inviato e ti consentirà di interrompere l'invio del modulo se necessario annullando il bubbling. Nel caso in cui sia necessario, le ultime 2 righe in questo esempio annulleranno il bubbling tra i browser.
<form runat="server" onsubmit="ShowLoading()">
</form>
<script type="text/javascript">
function ShowLoading(e) {
var div = document.createElement('div');
var img = document.createElement('img');
img.src = 'http://www.oppenheim.com.au/wp-content/uploads/2007/08/ajax-loader-1.gif';
div.innerHTML = "Loading...<br />";
div.style.cssText = 'position: fixed; top: 30%; left: 40%; z-index: 5000; width: 222px; text-align: center; background: #fff; border: 1px solid #000';
div.appendChild(img);
document.body.appendChild(div);
// These 2 lines cancel form submission, so only use if needed.
window.event.cancelBubble = true;
e.stopPropagation();
}
</script>
Il JavaScript di cui sopra è solo per esempio, tuttavia questo è (a mio parere) il modo preferito per fare quello che stai cercando. Sembra qualcosa di simile (al centro dello schermo):
Loading ...
http://www.oppenheim.com.au/wp-content/uploads/2007/08/ajax-loader-1.gif
Questo funziona per qualsiasi elemento che solleva un postback, in modo da non avere per chiamare manualmente ShowLoading()
su ogni pulsante o elemento del modulo che potresti avere sulla tua pagina. Sostituirei il contenuto di ShowLoading()
con alcune funzionalità di caricamento reali e non solo il codice di esempio che ho inserito.
fonte
2009-06-30 02:33:21