2010-05-01 5 views
3

Quand j'ai appelé cette fonction pour activer un validateur de javascript client:Comment réactiver un contrôle de validation sans effectuer simultanément une validation immédiate?

`ValidatorEnable(document.getElementById('<%=valPassportOtherText.ClientID%>'), true); //enable` validation control 

le contrôle de validation requis immédiatement a exécuté la validation, a trouvé la valeur dans la zone de texte associé accent vide et mis à la zone de texte (parce que SetFocusOnError était mettre à vrai). Par conséquent, l'effet secondaire était que le focus était déplacé vers le contrôle associé au contrôle Validation, par exemple, txtSpecifyOccupation.

      <asp:TextBox ID="txtSpecifyOccupation" runat="server" AutoCompleteType="Disabled" 
             CssClass="DefaultTextBox DefaultWidth" MaxLength="24" Rows="2"></asp:TextBox> 
            <asp:RequiredFieldValidator ID="valSpecifyOccupation" runat="server" ControlToValidate="txtSpecifyOccupation" 
             ErrorMessage="1.14b Please specify your &lt;b&gt;Occupation&lt;/b&gt;" 
             SetFocusOnError="True">&nbsp;Required</asp:RequiredFieldValidator> 

Peut-être il y a un moyen de permettre à la (nécessaire) valideur sans l'avoir effectuer simultanément la validation (au moins jusqu'à ce que l'utilisateur a tabulé hors de celui-ci?)

Je voudrais valider la La zone de texte txtSpecifyOccupation n'apparaît que sur un envoi de page ou lorsque l'utilisateur a tabulé la zone de texte txtSpecifyoccupation requise.

Comment puis-je y parvenir?

Répondre

0

N'appelez pas la méthode ValidatorEnable. Au lieu de cela, obtenez une référence au contrôle de validation et définissez simplement sa propriété "enabled" comme vous le souhaitez.

Pour effacer le texte d'erreur du contrôle de validation, définissez la propriété innerText sur "".

Questions connexes