【问题标题】:Run a Javascript function before postback在回发之前运行 Javascript 函数
【发布时间】:2011-02-15 10:10:45
【问题描述】:

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

OnClick="save_Click"

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

【问题讨论】:

    标签: c# .net asp.net


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      将这个sn-p添加到页面中按钮的onclick属性或者按钮prerender方法,服务器端...

      【讨论】:

      • 但我不想要求用户确认,而只是使用 javascript 检查页面上的一些条件,如果一切正常,则使用回发处理
      • 然后只返回true或false而不调用confirm方法:)
      【解决方案3】:

      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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 2011-02-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多