Validátory považují white-space za empty hodnotu

Leckoho možná překvapí chování validátorů (RegularExpressionValidatoru, CompareValidatoru a dalších) v jednoduchém případě:

<asp:TextBox ID="MyTB" runat="server" />
<asp:RegularExpressionValidator ValidationExpression="\d+" ControlToValidate="MyTB" Text="x" runat="server" />
<asp:Button Text="OK" runat="server" />

Co se děje:

  • hodnota "123" validátor aktivuje, vstup je validní
  • hodnoty "123 " nebo " 123" validátor aktivují, vstup není validní
  • hodnotu " " (white-space) validátor propustí, vstup je podle něj validní
    • nepomáhá ani ValidationExpression="^\d+$", validátor se prostě neaktivuje
  • hodnota "" (String.Empty) validátor neaktivuje, validátory nevalidují Empty vstupy
    • white-space samotný je považován za Empty a validátory se tak vyjma RequiredFieldValidatoru ignorují (a CustomValidatoru, pokud má nastaveno ValidateEmptyText="true")

Napsat komentář

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Změnit )

Twitter picture

You are commenting using your Twitter account. Log Out / Změnit )

Facebook photo

You are commenting using your Facebook account. Log Out / Změnit )

Google+ photo

You are commenting using your Google+ account. Log Out / Změnit )

Connecting to %s