1

Я разрабатываю проект с использованием Структура объекта в .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> 
+0

Вот ссылка uesful http://stackoverflow.com/questions/6133539/how-can-i-validate-the-date-is-not-the-future-date-in-net-c-sharp – Ratna

ответ

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

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

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)) 
    } 
+0

это способ обойти это, но я просто хочу функцию javascript, не используя ничего другого, чтобы я мог легко использовать его. То, что у меня проблема, заключается в том, как получить полную дату (сегодня с ddmmyyy) и сравнить ее с моим значением элемента управления. я просто хочу ограничить доступ молодых пользователей к регистрации. Пользователь должен быть как 16 лет, и я не очень люблю javascript или jquery, поэтому я действительно отчаянно пытаюсь решить эту проблему. –

+0

вам не следует верить клиенту полностью. Java-script даст вам системную дату пользователя, которая может быть неправильной. Покажите, что лучше установить его со стороны сервера. –

+0

Вы правы, но это требование клиента. я могу гарантировать, что этот возрастной констант легко на стороне сервера, но застрял на стороне клиента, ошибка должна быть показана при заполнении формы при регистрации. –

3
function check_date() 
{ 
var chkdate = document.getElementById("ID OF YOUR TEXT FIELD HERE").value; 

var edate = chkdate.split("/"); 
var spdate = new Date(); 
var sdd = spdate.getDate(); 
var smm = spdate.getMonth(); 
var syyyy = spdate.getFullYear(); 
var today = new Date(syyyy,smm,sdd).getTime(); 
var e_date = new Date(edate[2],edate[1]-1,edate[0]).getTime(); 
if(e_date > today) 
{ 
    alert("Date is not valid"); 
    return false; 
} 
}