【问题标题】:How to...Add Client Side function to button that postsback?如何...将客户端功能添加到回发按钮?
【发布时间】:2010-12-18 02:24:37
【问题描述】:

我有一个用于关闭 ASP.NET Ajax 表单上的模式对话框的按钮。如何添加在同一个按钮单击时调用的客户端函数?

目前 firebug 为 onclick 提供了此功能

javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$DefaultContent$btnPaymentActionDetailClose", "", true, "", "", false, false))

我可以用 jQuery 添加一个点击处理程序吗?我不想清除回发,因为它是表单功能所必需的。

我可以用吗

$("#buttonId").bind("click", function(e){
   runAnotherFunction();
});

并且不干扰现有的回发?

说实话,我想在模态对话框关闭时执行该函数。 ajax 控制工具包小部件会触发任何类型的事件吗?我知道我可以找到行为并调用显示和隐藏。执行 modal.hide() 时,我可以将我的函数附加到 exec 吗?

感谢您的任何建议, ~ck 在圣地亚哥

【问题讨论】:

    标签: javascript jquery events asp.net-ajax modalpopupextender


    【解决方案1】:

    是的,您绝对可以让您的ASP:Button 在回发之前在客户端上运行 Javascript。它是 webcontrol 的 OnClientClick 属性。

    你不需要 jQuery。

    <asp:button id="btn" runat="server" onClientClick="SomeJsFunction()" 
         onClick="ServerSideMethod()" Text="Hello Button" />
    
    <script language='javascript'>
         function SomeJsFunction()
          {
             alert('hi');
          }
    </script>
    

    如果您有兴趣控制回发是否发生,您可以返回并从您的 Javascript 函数的结果中检查真/假。

    function SomeJsFunction()
    {
         var isGood = false;
         return isGood;
    }
    
    <asp:button id="btn" runat="server" onClientClick="return SomeJsFunction()" 
         onClick="ServerSideMethod()" Text="Hello Button" />
    

    (感谢 Ralph 在 cmets 中的推动)

    【讨论】:

    • +1 我要补充一点,如果您需要验证某些输入和/或有条件地取消,您可能希望它返回 true 或 false,如 'onClientClick="return SomeJsFunction()"'回发。 JS 函数显然需要返回一个布尔值。
    猜你喜欢
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    相关资源
    最近更新 更多