Предотвратить будущую дату и сегодняшнюю дату с помощью пользовательского валидатора

Я разрабатываю проект с использованием Entity framework в .NET 4. Для регистрации есть страница с датой рождения. Я хочу проверить это, чтобы дата рождения не могла быть в будущем или сегодня. Более того, если бы это могло быть 5 лет назад по сравнению с сегодняшним днем.

Вот мой код.

Date of Birth:
<asp:RequiredFieldValidator ID="rfv_txtbx_DOB" runat="server" ControlToValidate="txtbx_DOB" CssClass="validator" Display="Dynamic" ErrorMessage="Date of Birth Required" SetFocusOnError="True" Text="*" ValidationGroup="vg" />
<asp:CustomValidator ID="cv_txtbx_DOB" runat="server"  ControlToValidate="txtbx_DOB" CssClass="validator" Display="Dynamic" 
    ErrorMessage="Date of Birth cannot be today or in future" SetFocusOnError="True" Text="*" ValidationGroup="vg" ClientValidationFunction="validateDate"/>
<asp:TextBox ID="txtbx_DOB" runat="server" CssClass="txtbx" Width="200px" />
<ajaxToolkit:CalendarExtender ID="txtbx_DOB_CalendarExtender" runat="server" Enabled="True" Format="dd-MM-yyyy" TargetControlID="txtbx_DOB" />
<script language="javascript" type="text/javascript">
    function Validate(sender, args) {
        var currentDate = new Date().getDate();

            if (args.Value < currentDate)
                args.IsValid = true;
            else
                args.IsValid = false;
        }
</script>

person Ali Umair    schedule 01.04.2013    source источник
comment
Вот полезная ссылка stackoverflow.com/questions/6133539/   -  person Ratna    schedule 01.04.2013


Ответы (1)


При загрузке страницы

protected void Page_Load(object sender, EventArgs e)
{
     Calendar1.EndDate = DateTime.Now;   //to dissable future  Date
}

Вот ссылка со всеми ограничениями в расширителе календаря

http://www.karpach.com/ajaxtoolkit-calendar-extender-tweaks.htm

Или используйте следующую функцию java-скрипта

function checkDate(sender, args) {
     if (sender._selectedDate > new Date()) {
          alert("You can select a day earlier than today!");
            sender._selectedDate = new Date();
            // set the date back to the current date
            sender._textbox.set_Value(sender._selectedDate.format(sender._format))
  }
person शेखर    schedule 01.04.2013
comment
это способ обойти это, но я просто хочу, чтобы функция javascript не использовала ничего другого, чтобы я мог легко ее использовать повторно. У меня проблема в том, как получить полную дату (сегодня с ddmmyyy) и сравнить ее со значением моего элемента управления. я просто хочу запретить молодым пользователям регистрироваться. Пользователю должно быть около 16 лет, и я не очень разбираюсь в javascript или jquery, поэтому я действительно отчаянно пытаюсь решить эту проблему. - person Ali Umair; 01.04.2013
comment
не стоит полностью верить клиенту. Java-скрипт даст вам системную дату пользователя, которая может быть неправильной. Показать, что лучше установить его со стороны сервера. - person शेखर; 01.04.2013
comment
Вы правы, но это требование клиента. я могу легко гарантировать, что этот возраст ограничен на стороне сервера, но застрял на стороне клиента, при заполнении формы при регистрации должна отображаться ошибка. - person Ali Umair; 01.04.2013