0
<asp:Label ID="lblDriving" runat="server" CssClass="lblDriving">Driving (y/n)</asp:Label>
<asp:TextBox ID="tbDriving" runat="server" CssClass="tbDriving"></asp:TextBox> 
<asp:RequiredFieldValidator ID="rfvDriving" runat="server" CssClass="errorAsterik" ErrorMessage="Please enter y or n in lowercase only" ControlToValidate="tbDriving">*</asp:RequiredFieldValidator>
<asp:RangeValidator ID="rvDriving" runat="server" CssClass="errorAsterik" ErrorMessage="Please enter n or y in lower case" ControlToValidate="tbDriving" MinimumValue="n" MaximumValue="y">*</asp:RangeValidator>

ユーザーが ASP.NET Validators を使用して小文字の y/n または大文字の Y/N を入力できるようにするにはどうすればよいですか?

4

2 に答える 2

3

You could use a RegularExpressionValidator:

<asp:RegularExpressionValidator ID="rvDriving" runat="server" 
   CssClass="errorAsterik" ErrorMessage="Please enter n or y" 
   ControlToValidate="tbDriving" 
   ValidationExpression="[yYnN]">*</asp:RegularExpressionValidator>
于 2013-02-28T10:53:55.177 に答える
1

withは大文字と小文字を区別するCustomValidatorため、を使用する必要があります。CompareValidatorType=String

<asp:CustomValidator id="ValidDriving"
       ControlToValidate="tbDriving"
       ErrorMessage="Enter y/Y or n/N"
       OnServerValidate="ValidateDriving"
       ClientValidationFunction="ValidateDriving_JS" 
       runat="server"/>

サーバー検証:

protected void ValidateDriving(object source, ServerValidateEventArgs args)
{
    args.IsValid = StringComparer.OrdinalIgnoreCase.Equals("y", args.Value) ||
                   StringComparer.OrdinalIgnoreCase.Equals("n", args.Value);
}

クライアント側の検証機能も提供する場合:

function ValidateDriving_JS(sender, args){
    var upperVal = args.Value.toUpperCase();
    args.IsValid = upperVal  == "Y" || upperVal == "N";
    return;      
}
于 2013-02-28T10:41:09.140 に答える