单击后如何禁用链接按钮(没有JQuery)

时间:2014-04-23 12:21:13

标签: javascript asp.net javascript-events

我想在用户点击后禁用链接按钮 但我在这里做错了。

单击后仍然启用按钮。我做错了什么?

<asp:LinkButton ID="submit" runat="server" 
        CssClass="button" 
        Text="OK" 
        OnClick="Submit_Click" 
        OnClientClick="this.disabled=true">
</asp:LinkButton>

3 个答案:

答案 0 :(得分:1)

只需将return false;提供给您的JavaScript即可。原因是你的asp:LinkButton会像这样呈现。

<a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$submit','')" 
   class="button" 
   id="ContentPlaceHolder1_submit" 
   onclick="this.disabled = true;return false;">
OK</a>

所以,如果你没有给出返回false,那么这些事情就会发生

  1. 它会触发onclick事件并禁用锚标记。(锚标记没有禁用属性。buttoninput type="submit"具有该属性。)
  2. 继续触发回发并点击服务器端点击事件
  3. 由于有回发,客户端JavaScript禁用将不会持续(即使它是一个按钮)
  4. 通过强制执行return false,您要求asp:LinkButton不再进行处理。

    P.S:我一直在使用PostBack Ritalin来防止asp:Button多次点击。 IMO,在这种情况下绝对值得一看。

答案 1 :(得分:-1)

使用javascript调试器检查正在调用的方法。 LinkBut​​tons是服务器生成的javascript动力锚标签&amp;因此可能很棘手。

答案 2 :(得分:-2)

试试这个javascript函数,

OnClientClick

    <asp:LinkButton  ID="submit" CssClass="button"  Text="OK" onclick="myButtonId_Click(this);return false;" ></asp:LinkButton>

添加功能,

    protected void myButtonId_Click(target) {
     target.disabled = true;
    }