2009-06-30 169 views

回答

3

看看OnClientClick,你可以添加一個調用js函數,或者內聯JS。

或者你可以用JQuery連接到按鈕,並顯示一個模式對話框與異步回調。

20

掛鉤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> 
7

您可以使用頁面表單的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()的內容,而不僅僅是我扔在一起的示例代碼。

相關問題