简体   繁体   English

在回发之前运行Javascript函数

[英]Run a Javascript function before postback

On my ASPX page, there is a button with this code: 在我的ASPX页面上,有一个带有以下代码的按钮:

OnClick="save_Click"

Is it possible to execute Javascript before postback and if the result is true , then do the postback and go to method save_click ? 是否可以在回发之前执行Javascript,如果结果为true ,那么执行回发并转到方法save_click

There is a property called "OnClientClick" as well. 还有一个名为"OnClientClick"的属性。 Here you can specify a function that will validate (I'm guessing), or just run regular javascript. 在这里你可以指定一个将验证(我猜)的功能,或者只运行常规的javascript。

If your data is not valid you can just return false; 如果您的数据无效,则可以return false; from the method. 从方法。 That should cancel your postback 这应该取消你的回发

you should use the very well known way: return confirm('bla bla bla') 你应该使用众所周知的方式:return confirm('bla bla bla')

adding this snippet to the onclick attribute of the button in the page or button prerender method, server side... 将此片段添加到页面中的按钮的onclick属性或按钮预渲染方法,服务器端...

http://msdn.microsoft.com/en-us/library/7ytf5t7k.aspx 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>

Possible duplicate of : Execute ClientSide before ServerSide in ASP.NET 可能的重复: 在ASP.NET中的ServerSide之前执行ClientSide

I changed the definition of the __doPostback function to accomplish this: 我改变了__doPostback函数的定义来完成这个:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM