我有一组ASP.NET控件:
<asp:LinkButton ID="Find"
ClientIDMode="Static"
runat="server"
CausesValidation="true"
OnClientClick="$('#Find').attr('disabled', 'disabled'); $('#SearchingLabel').show();">
<span>Search</span>
</asp:LinkButton>
<asp:Label ID="SearchingLabel"
ClientIDMode="Static"
runat="server"
Text="Searching..."
style="display: none;" />
正如您所见,我正在使用OnClientClick
,因此我可以停用Find
按钮并显示SearchingLabel
(并且JavaScript无错误地运行BTW < /强>)。非常基本的东西。
此外,围绕CausesValidation
属性,我在页面上有验证控件,但没有当前的验证错误。
但是,即使我没有从JavaScript返回false
页面也没有回发。我甚至试图return true;
,但这并没有改变任何事情(不是那么令人惊讶,但值得一试)。
我期待您的反馈!
答案 0 :(得分:8)
在回发之前,您似乎正在禁用按钮。
您可以在没有禁用部分的情况下尝试您的页面/脚本:
OnClientClick="$('#SearchingLabel').show();"
如果这样可行,请稍等延迟尝试:
OnClientClick="setTimeout(function() { $('#Find').attr('disabled', 'disabled'); }, 100); $('#SearchingLabel').show();"
答案 1 :(得分:0)
试试这个js代码onload
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequest);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequest);
function BeginRequest(sender, e) {
e.get_postBackElement().disabled = true;
// or your code
}
function EndRequest(sender, e) {
.......
}