我有一个按钮正在执行一些插入数据库。
问题是当用户填写表单并多次执行多次插入过程时单击按钮。
所以我禁用了" 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 :(得分:1)
这可以通过用html按钮替换你的asp:按钮来实现,然后在该按钮上单击创建对服务器功能的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
答案 1 :(得分: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
你说这个功能有效,但没有激活服务器功能,所以你只需要在你的JS函数中添加return true;
,就会调用服务器函数
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");
}
希望有所帮助
答案 2 :(得分:0)
尝试一下。
$('#btnContinue').prop('disabled', false);
$('#btnContinue').click();
$('#btnContinue').prop('disabled', true);