валидатор ASP - определить, находится ли возраст в пределах диапазона - PullRequest
1 голос
/ 01 февраля 2012

Используя валидатор asp, есть ли способ проверить, что введенная дата рождения находится в пределах возрастного диапазона, скажем, 5 и 22 лет?

В настоящее время я делаю asp: compareValidator и asp: rangeValidator, но мне нужно добавить другой уровень проверки диапазона для текущей даты в сравнении со значением, введенным в текстовом поле, чтобы уведомить, что возраст выходит за допустимый диапазон (5 и 22 только лет)

спасибо Тони

1 Ответ

2 голосов
/ 01 февраля 2012

Вы можете использовать ASP.NET CustomValidator для этого. В своем коде ASP.NET вы добавляете следующий элемент управления:

<asp:CustomValidator runat="server" id="ageByDateCheck"
    ControlToValidate="txtDate"
    OnServerValidate="CheckAgeByDate"
    ErrorMessage="You are not between the ages of 5 and 22." />

И в вашем коде есть новый метод проверки возраста.

public void CheckAgeByDate(object source, ServerValidateEventArgs args)
{
    var date = DateTime.Parse(args.Value);
    args.IsValid = true; //Replace this with your age check algorithm.
}

EDIT Если вы ищете проверку на стороне клиента, вам нужно будет создать некоторый javascript для проверки и указать его в поле ClientValidation элемента управления. Таким образом, ваш элемент управления ASP.NET теперь выглядит примерно так:

<asp:CustomValidator runat="server" id="ageByDateCheck"
    ControlToValidate="txtDate"
    OnServerValidate="CheckAgeByDate"
    ClientValidation="ClientValidate"
    ErrorMessage="You are not between the ages of 5 and 22." />

Вам, вероятно, не нужно иметь другое имя для этого, но я стараюсь держать вещи отдельно для здравого смысла кода.

Для вашего JavaScript:

<script language="javascript"> 
function ClientValidate(source, arguments)
{
    var date = new Date(arguments.Value); //make sure it's something javascript can parse
    //validate age here
    arguments.IsValid = isValid(date);
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...