2013-02-28 171 views
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驗證器輸入小寫字母y/n或大寫字母Y/N?ASP驗證器:僅驗證小寫字母和大寫字母

+0

的'ErrorMessages'與您的要求相矛盾。所以你想讓'y'或'Y'和'n'或'N'? – 2013-02-28 10:37:35

+0

@TimSchmelter我喜歡這兩個 - 大寫和小寫 – MJCoder 2013-02-28 10:44:19

+1

我認爲'p'被接受,因爲它介於'n'和'y'之間。在這種情況下,RangeValidator不是你想要的。 – 2013-02-28 10:48:53

回答

3

你可以使用的RegularExpressionValidator:

<asp:RegularExpressionValidator ID="rvDriving" runat="server" 
    CssClass="errorAsterik" ErrorMessage="Please enter n or y" 
    ControlToValidate="tbDriving" 
    ValidationExpression="[yYnN]">*</asp:RegularExpressionValidator> 
1

您將不得不使用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;  
} 
+0

謝謝你現在就去試試吧。 – MJCoder 2013-02-28 10:46:03

相關問題