2015-05-29 52 views
2

我有一个按钮正在执行一些插入到数据库中。如何禁用单击按钮然后再调用单击事件

问题是用户填写表单并单击按钮多次执行多次插入过程。

所以我禁用了“OnClientClick”按钮的按钮使用脚本,但它不执行服务器端Click事件。

这里是我的按钮:

<asp:Button ID="btnContinue" runat="server" Text="Continue To Application >>" OnClick="btnContinue_Click" ValidationGroup="criteria" OnClientClick="DiableButton(this)"></asp:Button> 

功能禁用按钮

function DiableButton(btn) { 

    $(btn).attr("disabled", "disabled");   
    $("[Id$='hfDisableBtn']").val($(btn).attr("id"));  

} 

功能,使正在从服务器端执行插入

function EnableButton() { 
    var btn = $("[Id$='hfDisableBtn']").val(); 
    $(btn).removeAttr("disabled"); 
    $("[Id$='hfDisableBtn']").val("");  
} 

后调用的函数我想要的是

1) first disable button on click if all the validation satisfied (like Require filed validator) 
2) then call the server side click event of that same button 
3) enable that button after executing server side click event 

我该如何做到这一点???

请帮我 谢谢你是进步

+0

显示验证...验证后您可以触发按钮属性更改。 –

+0

我用像“RequiredFieldValidator的”和“的RegularExpressionValidator” asp.net验证,你可以看到,在我的按钮,我已经使用的ValidationGroup =“标准” –

回答

1

这可以通过更换你的ASP来实现:与HTML按钮,该按钮点击创建一个AJAX调用服务器功能按钮(需要被标记为的WebMethod)那么你可以精确地跟随您的要求

1) first disable button on click if all the validation satisfied (like Require filed validator) 
2) then call the server side click event of that same button 
3) enable that button after executing server side click event 
0

我不知道,如果你的JS代码工作像您期望的,但如果职能工作,那么它应该太

1) first disable button on click if all the validation satisfied (like Require filed validator) 
2) then call the server side click event of that same button 

你说的那个功能工作,但不会因此这里火服务器功能,你只需要添加return true;在你的JS功能和服务器功能将被称为

3) enable that button after executing server side click event 

在您的服务器端功能添加此行调用JS功能

ScriptManager.RegisterStartupScript(this, this.GetType(), "Funct", "EnableButton();", true); 

而且,如果你存储按钮的ID在这两个函数只使用它,你可以让他们像这样:

function DiableButton(btn) { 
    $(btn).attr("disabled", "disabled");    
    return true; 
} 

function EnableButton() { 
    var btn = $('#<%=btnContinue.ClientID %>').val(); 
    $(btn).removeAttr("disabled"); 
} 

希望它有帮助

+0

但对于验证???? –

+1

在调用服务器之前,甚至在触发onclientclick函数之前,必需的字段验证器完成其工作,因此您不必担心 –