<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?
答案 0 :(得分:3)
您可以使用RegularExpressionValidator:
<asp:RegularExpressionValidator ID="rvDriving" runat="server"
CssClass="errorAsterik" ErrorMessage="Please enter n or y"
ControlToValidate="tbDriving"
ValidationExpression="[yYnN]">*</asp:RegularExpressionValidator>
答案 1 :(得分:1)
您必须使用CustomValidator
,因为CompareValidator
与Type=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;
}