在回发之前运行Javascript函数

时间:2011-02-15 10:10:46

标签: c# .net asp.net

在我的ASPX页面上,有一个带有以下代码的按钮:

OnClick="save_Click"

是否有可能在回发之前执行Javascript,如果结果是true,那么回发并转到方法save_click

4 个答案:

答案 0 :(得分:7)

还有一个名为"OnClientClick"的属性。在这里你可以指定一个函数来验证(我猜),或者只运行常规的javascript。

如果您的数据无效,则可以从该方法中return false;。这应取消你的回发

答案 1 :(得分:1)

你应该使用众所周知的方式:return confirm('bla bla bla')

将此代码段添加到页面中的按钮的onclick属性或按钮预呈现方法,服务器端......

答案 2 :(得分: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

答案 3 :(得分:1)

我改变了__doPostback函数的定义来完成这个:

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