2009-08-28 7 views
0

J'ai un validateur pour un champ de saisie de date. Si l'entrée n'est pas au format MM/JJ/AAAA, une erreur doit se produire et doit être effacée de l'entrée. J'ai essayé Text = "" propriété, mais cela ne fonctionne pas. Et setFocusOnError ne fonctionne qu'une seule fois. Si je clique deux fois sur un onglet, le champ perd sa valeur. Des idées?comment réinitialiser le champ de saisie après la validation échoue?

<asp:RegularExpressionValidator ID="startDateValidator" Display="Dynamic" 
        ControlToValidate="dateStartDate" ValidationExpression="([0-9]|1[012])[/]([0-9]|[12][0-9]|3[01])[/](19|20)\d\d" 
        ErrorMessage="Start Date should be in MM/DD/YYYY format" runat="server" SetFocusOnError="true" 
        /> 

EDIT: Je veux savoir si cela est possible en utilisant le validateur asp controls.And pourquoi SetFocusOnError ne fonctionne pas comme il est censé?

+0

En tant qu'utilisateur, je préférerais vraiment que vous n'ayez pas effacé la zone de texte. –

+0

Je le serais aussi. D'où ma deuxième question sur la raison pour laquelle le validateur perd son attention. – krishna

Répondre

1

Vous devez toujours valider le côté serveur, en plus, vous pouvez bien sûr valider sur le côté client (facilité d'utilisation).

Vous pouvez effacer la zone de texte via javascript, mais considérez un utilisateur pourrait avoir désactivé javascript. C'est aussi pourquoi vous devriez toujours valider du côté serveur.

<script language=JavaScript> 
<!-- 
function clear_textbox() 
{ 
    document.text_form.u_input.value = ""; 
} 
--> 
</script> 

Vous pouvez exécuter ce script, vous devez modifier u_input à votre nom de contrôles.

Questions connexes