J'utilise le contrôle de connexion ASP.NET et j'affiche un jQuery throbber lorsque le bouton Soumettre est cliqué. Cela fonctionne correctement, mais le throbber est visible si la validation côté client échoue et que le bouton est invisible. L'utilisateur ne peut donc pas soumettre de nouveau le formulaire. Comment cacher le throbber si la validation côté client échoue?Comment cacher un throbber lorsque la validation côté client ASP.NET échoue?
Répondre
C'était un peu compliqué mais j'ai réussi à le faire fonctionner. Tout d'abord, le contrôle Login doit être modélisé, ce à quoi je m'attendais, mais même si le ClientID du bouton est inaccessible, j'ai dû lui ajouter un sélecteur de classe. J'ai d'abord essayé d'ajouter le throbber et de l'activer si la validation réussissait en utilisant l'événement Page_ClientValidate() légèrement mais pas documenté mais cela ne fonctionnait pas car le throbber s'abonnait par défaut à l'événement click du bouton et s'activait avant la validation.
Qu'est-ce que le travail a été de coller à mini API et d'ajouter le throbber au bouton si Page_IsValid est vrai. L'attribut CausesValidation du bouton doit être true (valeur par défaut).
javascript:
$(document).ready(function() {
$('.login').click(function() {
if (Page_IsValid) {
$('.login').throbber({ image: "Images/throbber.gif" });
}
});
});
balisage bouton
; le seul ajout du modèle de contrôle de connexion est l'attribut CssClass:
<asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="Log In" ValidationGroup="uxLogin" CssClass="login" />
Sans trop savoir sur le détail ... pourquoi ne pas seulement lancer le throbber lorsque la validation côté client passe? En tant qu'utilisateur, je serais surpris de voir un élément de l'interface utilisateur flamber très temporairement, pour être retiré à nouveau et remplacé par un message d'erreur.
Cela pourrait être une meilleure approche, mais je dois encore résoudre le même problème de réponse au résultat de la validation côté client. Je vais essayer les deux façons une fois que j'arrive à ce point. Cependant, mon objectif principal est d'empêcher l'utilisateur de cliquer sur le bouton putain de fois si le site ne répond pas en 10 nanosecondes. :-) –
@Jamie: Donc, désactivez le bouton dès que l'utilisateur clique. Réactivez-le si la validation échoue, ou montrez le throbber si la validation réussit. Oui, vous devez répondre au résultat de la validation côté client - j'aurais pensé que c'était à peu près une donnée. –
@Jon Ce n'est pas une donnée, c'est la question. Je ne sais pas comment déterminer le résultat de la validation côté client (côté client) lors de l'utilisation des contrôles de validation ASP.NET. Je pourrais facilement écrire ma propre validation dans ce cas mais une fois que je l'aurais travaillé sur le formulaire de connexion, je voudrais l'implémenter sur des formulaires avec beaucoup de contrôles. –