2011-02-15 26 views
8

前的JavaScript函數在我的ASPX頁面上,有一個與此代碼的按鈕:運行回傳

OnClick="save_Click" 

是否有可能回發之前執行JavaScript,如果結果是true,然後做回發去到方法save_click

回答

7

還有一個屬性叫做"OnClientClick"。在這裏你可以指定一個函數來驗證(我猜),或者只是運行正常的JavaScript。

如果您的數據無效,您可以使用該方法中的return false;。這應該取消回傳

1

你應該使用非常著名的方式:返回確認(「唧唧歪歪」)

加入這個片段到按鈕的頁面或按鈕prerender方法onclick屬性,服務器端...

+0

但我不想問用戶確認,但只是檢查頁面上使用JavaScript的一些條件,如果一切正常處理與回發 – gruber 2011-02-15 10:15:27

1

http://msdn.microsoft.com/en-us/library/7ytf5t7k.aspx

<%@ Page Language="C#" %> 
<script runat="server"> 
    protected void Button1_Click(Object sender, EventArgs e) 
    { 
     Label1.Text = "Server click handler called."; 
    } 
</script> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
<body> 
    <form id="form1" runat="server"> 
    <asp:Button ID="Button1" Runat="server" 
     OnClick="Button1_Click" 
     OnClientClick="return confirm('Ready to submit.');" 
     Text="Test Client Click" /> 
    <br /> 
    <asp:Label ID="Label1" Runat="server" text="" /> 
    </form> 
</body> 
</html> 

可能重複的:Execute ClientSide before ServerSide in ASP.NET

1

我改變了__doPostBack函數的定義來實現:

<script type="text/javascript"> 
    var originalDoPostback = __doPostBack; 
    __doPostBack = function (p1, p2) { 
     doSomethingCustomHere(); 
     originalDoPostback(p1, p2); 
    }; 
</script>