【问题标题】:Execute JavaScript function when clicking on ASP.NET button单击 ASP.NET 按钮时执行 JavaScript 函数
【发布时间】:2012-02-10 06:53:04
【问题描述】:

我有一个按钮:

<asp:Button
    runat="server"
    ID="btNew"
    OnClick="ButtonNew_Click"
    Text="New" />

我有 OnClick 方法:

protected void ButtonNew_Click(object sender, EventArgs e)
{

}

在同一页面 (.aspx) 上,我有一个 JavaScript 函数:

function MyCheck()
{
    // Return true or false
}

我希望在单击按钮时执行 JavaScript 函数 (MyCheck())。如果为真,则执行ButtonNew_Click()。如果为false,则不执行ButtonNew_Click()

有什么想法吗?

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    用途:

    function clientfunction()
    {
        // Do the client side validations here.
    
        // Now call the server side button event explicitly
        __doPostBack('OnClick','button_ID');
    }
    

    在按钮onclientclick中,调用函数clientfunction():

    <asp:Button runat="server" ID="btNew" OnClick="ButtonNew_Click" Text="New" onclientclick="clientfunction()"/>
    

    【讨论】:

    • return truefalse 即可,无需调用__doPostBack
    【解决方案2】:

    使用OnClientClick

    OnClientClick=" MyCheck"
    

    如果您的方法将返回 false,则不会调用 ButtonNew_Click。

    【讨论】:

      【解决方案3】:

      试试这个:

      btNew.Attributes.Add("onclick", "return MyCheck();");
      

      【讨论】:

      • 这是调用 javascript 函数,但我希望方法返回 false 时不执行 ButtonNew_Click
      • 那么你需要在javascript代码中做一些事情......在检查来自javascript的条件调用方法之后
      • 这是btNew.Attributes.Add("onclick", "return MyCheck();"); 编辑你的答案
      【解决方案4】:

      服务器端代码:

      using System.Web.UI;
      using System.Web.UI.WebControls;
      
      namespace count
      {
          public partial class WebForm1 : System.Web.UI.Page
          {
      
              protected void Page_Load(object sender, EventArgs e)
              {
      
              }
      
              protected void Button1_Click(object sender, EventArgs e)
              {
                  Label1.Text = "button clicked";
              }
          }
      }
      

      客户端:

      <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs"      Inherits="count.WebForm1" %>
      
      <!DOCTYPE html>
      
      <html xmlns="http://www.w3.org/1999/xhtml">
          <head runat="server">
              <title></title>
              <script type="text/javascript">
                  function aa() {
                      return true;
                  }            
              </script>
          </head>
      
          <body>
              <form id="form1" runat="server">            
                  <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" OnClientClick="return aa()" Text="Button" />
                  <p>
                      <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                  </p>
              </form>
          </body>
      </html>
      

      如果在函数 aa() JavaScript 中你将返回 false;它不会执行服务器端代码。

      【讨论】:

        猜你喜欢
        • 2013-11-21
        • 2022-12-03
        • 2023-03-15
        • 2011-03-15
        • 1970-01-01
        • 2011-06-16
        • 1970-01-01
        • 1970-01-01
        • 2018-05-21
        相关资源
        最近更新 更多