Валидатор диапазона не работает в минимальном и максимальном значении asp.net

StackOverflow https://stackoverflow.com//questions/21029092

Вопрос

Я применил RangeValidator на TextBox.Но он всегда показывает мне ошибку:Неверный диапазон, хотя я указал минимальное значение 10 и максимальное значение 25.Я хочу, чтобы пользователь не вводил значение, длина которого меньше 10 и больше 25.Я хочу, чтобы пользователь мог вводить что угодно, поэтому у меня есть type="string" в RangeValidator.Но он всегда выдает мне сообщение об ошибке:Неверный диапазон.

<td>
    <asp:TextBox ID="tbPassword" runat="server" MaxLength="25" type="password">
    </asp:TextBox>
    <asp:RequiredFieldValidator ID="rfvPassword" runat="server" 
        ControlToValidate="tbPassword" ForeColor="red" Display="Dynamic" 
        ErrorMessage="Password is required." SetFocusOnError="true">
    </asp:RequiredFieldValidator>
    <asp:RangeValidator ID="rvPassword" ControlToValidate="tbPassword" 
        ForeColor="red" Display="Dynamic" MinimumValue="10" MaximumValue="25" 
        SetFocusOnError="true" Type="String" runat="server" 
        ErrorMessage="Invalid Range">
    </asp:RangeValidator>
</td>
Это было полезно?

Решение

Для этого вам нужно будет использовать CustomValidator контроль, как предложил Эмад Мохтар.

Для проверки на стороне сервера создайте такое событие.

protected void TextValidate(object source, ServerValidateEventArgs e)
{
    e.IsValid = (e.Value.Length >= 10 && e.value.Length <= 25);
}

Для проверки на стороне клиента создайте подобную функцию javascript.

<script type="text/javascript">
    function validateLength(oSrc, args){
        args.IsValid = (args.Value.length >= 10 && args.Value.length <= 25);
    }
</script>

Затем в вашей разметке aspx есть CustomValidator контроль такой.

<asp:Textbox id="tbPassword" runat="server" text=""></asp:Textbox>
<asp:CustomValidator id="customValidator" runat="server" 
    ControlToValidate = "tbPassword"
    OnServerValidate="TextValidate"
    ErrorMessage = "Password must be between 10 to 25 characters!"
    ClientValidationFunction="validateLength" >
</asp:CustomValidator>

Вы можете найти более подробную информацию здесь.

Другие советы

Эту проверку можно реализовать с помощью CustomValidator Control и применить проверку на стороне клиента и на стороне сервера. См. пример. здесь.

Недавно я заметил эту интересную функцию: просто используйте приведенные ниже атрибуты для asp control/html.minLength="10" maxLength="1000"

как ясно указано в атрибутах, допускается минимум 10 символов и максимум 1000 символов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top