Ho la sensazione che questo potrebbe essere un problema molto semplice, ma non è possibile per la vita di me capirlo.Il validatore personalizzato non si attiva se il controllo non è stato compilato in
Ho un asp: casella di testo. Ho un validatore personalizzato su cui ha convalida client e server side.
Ecco il codice:
<asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
<asp:CustomValidator ID="vldFirstName" runat="server" ControlToValidate="txtFirstName"
ClientValidationFunction="ValidateName" OnServerValidate="vldFirstName_ServerValidate"
Text="Please put in your first name" ErrorMessage="First name missing"
ForeColor="Red" font-bold="true" Display="Dynamic"
ValidateEmptyText="true">
</asp:CustomValidator>
Ciò convalida correttamente sul lato server, se mi basta andare dritto nella mia pagina e fare clic su Invia, lasciando vuota la casella di testo.
Tuttavia con convalida lato client. Se vado nella scatola e vi esco direttamente senza digitare nulla. La convalida javascript non viene attivata. Se poi scrivo qualcosa. Lascia la scatola. Torna indietro e quindi deseleziona la casella di lavoro. Ritorna dicendo che è vuoto.
Tuttavia, lo voglio appena entrano nella scatola e lasciano fare la convalida. Non sono sicuro del motivo per cui il validatore non viene attivato se la casella di testo non è stata modificata.
Potrebbe essere utile vedere il codice 'ValidateName'. – stuartd
@stuartd, il codice di validazione è semplice al momento controllando la lunghezza se è maggiore di 3 e il valore non è nullo. Ho effettuato il debug e ho inserito un punto di interruzione ogni volta che il codice viene chiamato lato client. Funziona bene quando ho messo qualcosa in e poi cancellato. Ma si attiva se è appena stato saltato attraverso – Sam
Cosa dice 'ValidateName' dice che il valore di input è quando viene saltato e quando viene inserito/eliminato? – LGSon