我有一個asp.net按鈕,它是runat服務器,有一個按鈕onclick回發的函數句柄。如何在回發asp.net按鈕之前運行javascript函數
如何在進入服務器程序之前在頁面中顯示"loading ..."
單詞?
我有一個asp.net按鈕,它是runat服務器,有一個按鈕onclick回發的函數句柄。如何在回發asp.net按鈕之前運行javascript函數
如何在進入服務器程序之前在頁面中顯示"loading ..."
單詞?
看看OnClientClick,你可以添加一個調用js函數,或者內聯JS。
或者你可以用JQuery連接到按鈕,並顯示一個模式對話框與異步回調。
掛鉤OnClientClick某些javascript函數返回true或false。如果返回true,則發生回發,否則它將被取消。
<asp:Button id="MyButton" runat="Server" Text="Close"
OnClientClick="return PromptClose();"/>
<script type="text/javascript">
function PromptClose(){
return prompt("Do you really want to close this window?");
}
</script>
您可以使用頁面表單的onsubmit
事件。這發生在表單提交之前,並且如果您需要通過取消冒泡,您可以停止提交表單。如果你需要這個,這個例子中的最後兩行將取消跨瀏覽器的冒泡。
<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>
上面的JavaScript只是例子,但是這是(在我看來)的首選方式來做你想找的。它看起來是這樣的(屏幕的中心):
載入中...
http://www.oppenheim.com.au/wp-content/uploads/2007/08/ajax-loader-1.gif
這將對於提高回發的任何元素,所以你不必在您的網頁上每個按鈕或表單元素上手動撥打ShowLoading()
。我將用一些真實的加載功能替換ShowLoading()
的內容,而不僅僅是我扔在一起的示例代碼。