如何禁用ASP按钮(System.Web.UI.WebControls.Button)的回发(postback)功能

142

我有一个asp按钮。由于它是服务器端的,所以只能显示给已登录的用户,但我想让它运行一个JavaScript函数。似乎当它的runat="server"时,它总是调用PostBack事件。

我还有一个普通按钮(<input...),它没有运行在服务器端,它可以正常工作...

我该如何使这个按钮仅运行JavaScript而不进行PostBack?

13个回答

2

您可以使用以下代码:

<asp:Button ID="Button2" runat="server"
     Text="Pulsa"
     OnClientClick="this.disabled=true"
     UseSubmitBehavior="False"/>

如果需要提交

...
<form id="form1" runat="server" onsubmit="deshabilita()">
...
<script type="text/javascript">
    function deshabilita()
    {
        var btn = "<%= Button1.ClientID %>";
        if (confirm("Confirme postback"))
        {
            document.getElementById(btn).disabled = true;
            return true;
        }
        return false;
    }
</script>


1
你可以使用 JQuery 来实现此功能。
<asp:Button runat="server" ID="btnID" />

比在JQuery中更。
$("#btnID").click(function(e){e.preventDefault();})

1
你只需要从中返回 false。

function jsFunction() {
  try {
    // Logic goes here
    return false; // true for postback and false for not postback
  } catch (e) {
    alert(e.message);
    return false;
  }
}
<asp:button runat="server" id="btnSubmit" OnClientClick="return jsFunction()" />

以下是JavaScript函数。

注意*: 在JavaScript函数中始终使用try-catch块,并从catch块返回false,以防止不正确的计算。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接