Number validation in required field validator

2020-05-25 07:29发布

问题:

Is it possible to put Number validation in required field validator in asp.net text box?

回答1:

You should use the CompareValidator, for example:

<asp:TextBox ID="txt" runat="server />
<asp:CompareValidator ID="cv" runat="server" ControlToValidate="txt" Type="Integer"
   Operator="DataTypeCheck" ErrorMessage="Value must be an integer!" />

This is the most natural choice if you want a simple data type check. Otherwise if you want to verify a range use the RangeValidator suggestions. If you need a certain pattern use the RegularExpressionValidator.

Note that you'll want to add a RequiredFieldValidator as well since some validators will allow blank entries.



回答2:

Actually you only need a regularexpression validator for this purpose with ValidationExpression = "^\d+?$"



回答3:

Maybe you can use a RangeValidator attached to that textbox, setting Type to Integer or wathever.

RangeValidator class on MSDN



回答4:

Another possibility is using the RegexpValidator and adding a regular expression that makes sure there's 1 or more digits in it, something like:

RegularExpressionValidator regexpvalidator = new RegularExpressionValidator(); 
regexpvalidator.ID = "RegularExpressionValidator1"; 
regexpvalidator.ValidationExpression = "\d+"; 
regexpvalidator.ControlToValidate = "YourControl"; 
regexpvalidator.ErrorMessage = "Please specify a digit"; 
regexpvalidator.SetFocusOnError = true; 


回答5:

No, a RequiredFieldValidator can only verify that the field contains something.

If you want to verify that the field only contains digits, you can use a RegularExpressionValidator with the pattern "\d+".



回答6:

A RequiredFieldValidator only checks if the field is filled in. It doesn't care what with.

You will need an extra CompareValidator with it's Operator set to DataTypeCheck and it's Type set to Integer. Note you need both: the CompareValidator will ignore an empty input.



回答7:

Yes, like this:

<asp:TextBox ID="tb" runat="server"></asp:TextBox>
<asp:RangeValidator ControlToValidate="tb" Type="Integer"></asp:RangeValidator>