Javascript 如何阻止双击asp.net按钮?

Javascript 如何阻止双击asp.net按钮?,javascript,jquery,asp.net,vb.net,double-click,Javascript,Jquery,Asp.net,Vb.net,Double Click,好的,让我先回答这个问题,我已经通读了这个网站上的所有文章,并尝试了大多数解决方案 我有一个按钮,它有一个服务器端事件。此服务器端事件具有(处理btnSave_单击) 我的第一次尝试当然是这样的 btnSave.enable = false 这当然不够快 然后我试了一下 btnSave.Attributes.Add("onclick", "this.disabled=true;"); 还有这个 btnSave.Attributes.Add("onclick", " this.disabled

好的,让我先回答这个问题,我已经通读了这个网站上的所有文章,并尝试了大多数解决方案

我有一个按钮,它有一个服务器端事件。此服务器端事件具有(处理btnSave_单击)

我的第一次尝试当然是这样的

btnSave.enable = false
这当然不够快

然后我试了一下

btnSave.Attributes.Add("onclick", "this.disabled=true;");
还有这个

btnSave.Attributes.Add("onclick", " this.disabled = true; " + ClientScript.GetPostBackEventReference(btnSave, Nothing) + ";") 
当然,这不起作用,然后我通过OnClientClick事件尝试了一系列不同的jquery和javascript。这也不起作用,但从我所能看到的情况来看,这是因为我也有服务器端事件触发,我在stepthrough期间没有点击我的函数。正如你所看到的,我已经花了很多时间试图让这个工作。希望有人知道我在这里做的不对。我所拥有的是一个非常简单的按钮和代码,真的没有什么奢侈的

这是我的按钮

<asp:Button ID="btnSave" runat="server" Width="60px" Text="Save" Enabled="False"></asp:Button>
再次感谢您的任何想法。谢谢。

像这样的东西

客户:

var buttonPressed = false;
服务器:

btnSave.OnClientClick = "if (buttonPressed) return false else buttonPressed = true; return true;" 
像这样的

客户:

var buttonPressed = false;
服务器:

btnSave.OnClientClick = "if (buttonPressed) return false else buttonPressed = true; return true;" 

像这样的方法应该会奏效:

 $('#yourButtonId').click(function() {
         $(this).attr('disabled', 'disabled');
    });

像这样的方法应该会奏效:

 $('#yourButtonId').click(function() {
         $(this).attr('disabled', 'disabled');
    });

当您单击按钮并使用javascript禁用它时,它在客户端被禁用,而服务器端不知道它在客户端被禁用,因为服务器端检查viewstate的控件属性。如果您希望在被单击和回发后将其禁用,则必须在客户端和服务器上禁用它

在客户端上

$('#<%= btnSave.ClientID %>').click(function() {
         this.disabled = true;
    });
btnSave.enable = false

当您单击按钮并使用javascript禁用它时,它在客户端被禁用,而服务器端不知道它在客户端被禁用,因为服务器端检查viewstate的控件属性。如果您希望在被单击和回发后将其禁用,则必须在客户端和服务器上禁用它

在客户端上

$('#<%= btnSave.ClientID %>').click(function() {
         this.disabled = true;
    });
btnSave.enable = false

这是一个更聪明的解决方案: 服务器:


客户:

var dbl = 0;
function preventDblClick() {
    if (dbl < 1) {
        dbl += 1;
        return true;

    } else {
        return false;

    }
}
var-dbl=0;
函数preventedblclick(){
if(dbl<1){
dbl+=1;
返回true;
}否则{
返回false;
}
}

这是一个更聪明的解决方案: 服务器:


客户:

var dbl = 0;
function preventDblClick() {
    if (dbl < 1) {
        dbl += 1;
        return true;

    } else {
        return false;

    }
}
var-dbl=0;
函数preventedblclick(){
if(dbl<1){
dbl+=1;
返回true;
}否则{
返回false;
}
}

您是否尝试过jQuery event.preventDefault()?能否详细说明为什么javascript不适合您?我认为这与我有一个服务器端事件这一事实有关。但是我认为客户端和服务器端事件可以同时发生……您尝试过jQuery event.preventDefault()吗?您能详细说明一下为什么javascript不适合您吗?我认为这与我有一个服务器端事件这一事实有关。但我认为客户端和服务器端事件可以同时发生……这是可行的,但我认为我的问题是,我在服务器端事件上使用断点进行测试。我想那个断点允许我点击离开。我删除了这个断点,这似乎是可行的。这是可行的,但我想我的问题是,我在服务器端事件上用一个断点来测试它。我想那个断点允许我点击离开。我删除了这个断点,这似乎有效。