Arrêter de publication sur TextChanged
J'ai une zone de texte dans une page aspx qui a un événement TextChanged attaché à elle.
J'ai aussi un programme de validation attaché à la zone de texte.
Lorsque le texte est modifié, la validation de la déclenche, mais dans le cas où il y a une erreur l'événement textchanged est encore appelée. Savez-vous si il est possible d'arrêter la publication sur textchanged si le validateur incendies?
<asp:TextBox ID="txtQuantity" runat="server" AutoPostBack="true" ontextchanged="txtQuantity_TextChanged"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqQuantity" ControlToValidate="txtQuantity" runat="server" ErrorMessage="The quantity is mandatory."></asp:RequiredFieldValidator>
OriginalL'auteur Dante | 2009-10-06
Vous devez vous connecter pour publier un commentaire.
Vous pouvez déplacer la validation coté client en ajoutant
EnableClientScript="true"
attribut. La publication n'a pas lieu comme vérification est effectuée avec JS.D'autres que vous pouvez vérifier si la page est valide lors de l'exécution de fonction de rappel pour l'événement TextChanged afin de définir si la fonction peut continuer. Vous devez ajouter
ValidationGroup
attribut à votre programme de validation et d'appelPage.Validate
fonction de la spécification de groupe avant dePage.IsValid
est cochée.Upd
Voici l'astuce.
Ajouter votre propre JS fonction, par exemple:
Dans
Page_Load
événement ajouter ce code:Ce ne sera pas gâcher auto publication lorsque l'entrée est correcte, mais permettra d'éviter la publication du contraire.
Mise à jour de la réponse avec la solution la plus simple...
Vous avez raison, et j'ai essayé ce. La chose est que j'ai un RangeValidator qui a besoin d'une des valeurs Min et Max, et je vais avoir des problèmes pour l'envoi de ces deux valeurs dans la fonction IsValid. Mais votre idée fonctionne. Pour cette raison, je vais accepter votre réponse même si le problème n'est pas résolu..
Vous pouvez toujours revenir client côté scénario. Pour cela ajouter une page de niveau variable côté serveur, puis dans le serveur de mark-up droit qch comme: var MinValueStr = "<%= MinValue %>"; et de le convertir en entier avant de l'utiliser.
Qui ne fonctionne pas car la zone de texte est dans un contrôle de Liste, j'ai besoin spécifique des valeurs Min et Max par ligne dans la liste, mais je pense que j'ai surmonté. Je vais partager lorsque vous avez terminé.
OriginalL'auteur terR0Q
Ajouter
CausesValidation="true"
de la zone de texte et ce sera bon. Si la validation n'est pas valide, il n'y aura pas de post-retour.Merci Naveen. C'est ce qu'il est censé faire. Merveilleux!
OriginalL'auteur Naveen
l'essayer après le changement AutoPostBack="true" comme AutoPostBack="false"..
Pourquoi vous voulez à la publication sur l'événement textchanged..il est logique d'entreprise attachés avec elle?
OriginalL'auteur Jaswant Agarwal
Juste le partage d'une ligne, version plus courte de la accepté de répondre:
Avoir le même problème avec un RequiredFieldValidator, le ci-dessus a fonctionné pour moi.
Connu de rappel: le concepteur se plaint que "onchange" n'est pas valide côté serveur attribut.
OriginalL'auteur idilov