【发布时间】:2010-01-02 20:38:30
【问题描述】:
我正在使用 ASP.NET 登录控件,并在单击提交按钮时显示jQuery throbber。这很好用,但是如果客户端验证失败并且按钮不可见,则 throbber 是可见的,因此用户无法重新提交表单。如果客户端验证失败,如何隐藏 throbber?
【问题讨论】:
我正在使用 ASP.NET 登录控件,并在单击提交按钮时显示jQuery throbber。这很好用,但是如果客户端验证失败并且按钮不可见,则 throbber 是可见的,因此用户无法重新提交表单。如果客户端验证失败,如何隐藏 throbber?
【问题讨论】:
在不了解细节的情况下...为什么不只在客户端验证通过时启动 throbber?作为用户,我会惊讶地看到一个 UI 元素非常短暂地闪现,只是再次被删除并被错误消息替换。
【讨论】:
这有点棘手,但我得到了这个工作。首先,必须对 Login 控件进行模板化,这是我所期望的,但即便如此,按钮的 ClientID 也是不可访问的,所以我不得不向它添加一个类选择器。我首先尝试使用轻微/未记录的 Page_ClientValidate() 事件添加 throbber 并在验证成功时将其打开,但这不起作用,因为 throbber 默认订阅按钮的单击事件并在验证发生之前打开。
起作用的是坚持mini API,如果 Page_IsValid 为真,则将 throbber 添加到按钮。按钮的 CausesValidation 属性必须为 true(默认值)。
javascript:
$(document).ready(function() {
$('.login').click(function() {
if (Page_IsValid) {
$('.login').throbber({ image: "Images/throbber.gif" });
}
});
});
按钮标记; Login 控件模板中唯一添加的是 CssClass 属性:
<asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="Log In" ValidationGroup="uxLogin" CssClass="login" />
【讨论】: