Asp.net验证。仅允许用户在文本框中输入特定数字

时间:2015-02-11 14:31:19

标签: c# asp.net

<asp:TextBox ID="Fund9" 
             runat="server" 
             columns="4" 
             MaxLength="3" Value="" /> 
<asp:RangeValidator ControlToValidate="Fund9" 
                    MinimumValue="100" 
                    MaximumValue="100" 
                    Type="Integer" 
                    ErrorMessage="Fund 9 must be 0 or 100" 
                    Text="Must be 100% if selected" runat="server" /></td></tr>

正如您所看到的,上面文本框中的验证仅允许用户输入数字100.我需要它,因此用户也可以输入0但没有其他选项。我会对此提出一些建议。

2 个答案:

答案 0 :(得分:6)

使用CustomValidator

<asp:CustomValidator ID="ValidatFund" 
    ControlToValidate="Fund9" ValidateEmptyText="true"
    OnServerValidate="ValidateFund" runat="server"
    ErrorMessage="Fund 9 must be 0 or 100" >
</asp:CustomValidator>


protected void ValidateFund(Object sender, ServerValidateEventArgs e)
{
    e.IsValid = e.Value.Trim() == "0" || e.Value.Trim() == "100";
}

您还可以在javascript中提供ClientValidationFunction

答案 1 :(得分:3)

您可以使用RegularExpressionValidator。如果需要输入,您也可以将其与RequiredFieldValidator结合使用。

<asp:TextBox ID="Fund9"
    runat="server"
    Columns="4"
    MaxLength="3" Value="" />
<asp:RegularExpressionValidator ID="Fund9RegularExpressionValidator"
    runat="server"
    ValidationExpression="^(0|100)$"
    ErrorMessage="Fund 9 must be 0 or 100" ControlToValidate="Fund9"
    Text="Must be 100% if selected" Display="Dynamic" />
<asp:Button runat="server" ID="SubmitButton" Text="Submit"
    OnClick="SubmitButton_Click" />

<%-- RequiredFieldValidator is optional --%>
<asp:RequiredFieldValidator ControlToValidate="Fund9" Text="Required"
    ErrorMessage="Required is required." runat="Server"
    ID="Fund9RequiredFieldValidator" Display="Dynamic" />