Javascript 如何阻止双击asp.net按钮?
好的,让我先回答这个问题,我已经通读了这个网站上的所有文章,并尝试了大多数解决方案 我有一个按钮,它有一个服务器端事件。此服务器端事件具有(处理btnSave_单击) 我的第一次尝试当然是这样的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.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不适合您吗?我认为这与我有一个服务器端事件这一事实有关。但我认为客户端和服务器端事件可以同时发生……这是可行的,但我认为我的问题是,我在服务器端事件上使用断点进行测试。我想那个断点允许我点击离开。我删除了这个断点,这似乎是可行的。这是可行的,但我想我的问题是,我在服务器端事件上用一个断点来测试它。我想那个断点允许我点击离开。我删除了这个断点,这似乎有效。