在asp.net web表单中,使用jquery或javascript在单击后禁用按钮单击,并在10秒后重新启用

在asp.net web表单中,使用jquery或javascript在单击后禁用按钮单击,并在10秒后重新启用,javascript,c#,jquery,html,asp.net,Javascript,C#,Jquery,Html,Asp.net,目前,我正在尝试实现的是在点击后禁用一个按钮,并在10秒后重新启用。但它不起作用。 HTML代码 <td> <asp:Button ID="btnResendOTP" runat="server" CssClass="button" Text="Resend OTP" OnClientClick="disableButton()" OnClick="btnResendOTP_Click"/> </td> JS函数 <script ty

目前,我正在尝试实现的是在点击后禁用一个按钮,并在10秒后重新启用。但它不起作用。 HTML代码

<td>
      <asp:Button ID="btnResendOTP" runat="server" CssClass="button"
Text="Resend OTP" OnClientClick="disableButton()" OnClick="btnResendOTP_Click"/>
 </td>

JS函数

<script type="text/javascript">
    function disableButton() {
        document.getElementById("<% btnResendOTP.ClientID %>").disabled = true;
        setTimeout(function () { document.getElementById("<% btnResendOTP.ClientID %>").disabled = false; }, 10000);
    }

</script>

函数禁用按钮(){
document.getElementById(“”).disabled=true;
setTimeout(函数(){document.getElementById(“”).disabled=false;},10000);
}

我会按照以下思路做一些事情:

$("#mybtn").click(()=> {
   $("#mybtn").attr("disabled", true);
   $("#mybtn").delay(10000).attr("disabled", false);
});
如果需要将其作为命名函数,则基本相同:

$("#mybtn").click(function btnclick() {
   $("#mybtn").attr("disabled", true);
   $("#mybtn").delay(10000).attr("disabled", false);
});

我只是对getElementById做了一些更改。请尝试以下代码

<script type="text/javascript">
    function disableButton() {
        document.getElementById('<%= btnResendOTP.ClientID %>').disabled = true;
        setTimeout(function () {
            document.getElementById('<%= btnResendOTP.ClientID %>').disabled = false;
        }, 10000);
    }
</script>

函数禁用按钮(){
document.getElementById(“”).disabled=true;
setTimeout(函数(){
document.getElementById(“”).disabled=false;
}, 10000);
}
.ASPX

<asp:Button ID="btnResendOTP" runat="server" CssClass="button" Text="Resend OTP" OnClientClick="disableButton()" OnClick="btnResendOTP_Click" />


这并没有解决我的问题,我收到了这个错误!0x800a01b6-JavaScript运行时错误:对象不支持属性或方法“setAttribute”,上面的代码片段会出现什么错误?最好只执行一次
document.getElementById(“”
),然后将其分配给一个变量,然后重新使用。除非您希望具有该ID的元素在这两次之间发生更改,否则多次执行该操作是浪费时间的。您能更具体地使用代码吗?@SagarTimalsina我更新了它。使用
.attr
可以访问元素的属性。在本例中,我访问它的disabled属性并将其设置为true。当我想重新激活它时,我将其延迟10秒,然后再次访问disabled属性并将其设置为false。您多次执行
$(“#mybtn”)
。这是jQuery或其他简化昂贵DOM遍历的框架很容易养成的坏习惯之一。除非您正在搜索的元素集可能在您进行的不同调用之间发生更改,否则您应该执行一次DOM搜索并将其分配给变量(变量就是用于此目的的)。不这样做是不必要的浪费,并且使您的代码更难维护(如果HTML设计更改为需要不同的ID,那么您只需要在一个位置更改它,如果您使用变量)。此代码也不起作用@好的。如果还有什么问题,你能详细说明一下这个问题吗。此外,张贴更多的信息,因为上述代码应该是工作。我已经提到了我的完整要求。