Javascript 未输入日期-时间,但模型已按要求进行了日期-时间的客户端验证

Javascript 未输入日期-时间,但模型已按要求进行了日期-时间的客户端验证,javascript,jquery,asp.net-mvc,validation,razor,Javascript,Jquery,Asp.net Mvc,Validation,Razor,我将MVC 5与以下模型一起使用: public class PassengerItem { /// <summary> /// Class constructor /// </summary> public PassengerItem() { DateOfBirth = new DateTime(1970, 1, 1); } [Required(AllowEmptyStrings = fa

我将MVC 5与以下模型一起使用:

public class PassengerItem
{
    /// <summary>
    ///     Class constructor
    /// </summary>
    public PassengerItem()
    {
        DateOfBirth = new DateTime(1970, 1, 1);
    }

    [Required(AllowEmptyStrings = false)]
    [DataType(DataType.Date)]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
    public DateTime DateOfBirth { get; set; }
}

public class BookingProcessViewModel
{
    /// <summary>
    ///     Class constructor
    /// </summary>
    public BookingProcessViewModel()
    {
        ErrorMessages = new OzCpResultErrors();
        Passengers = new List<PassengerItem>();

        //Populate with 4 passengers. We show/hide these in the view. Currently we only allow a max of 4 pax to be booked at a time
        for (int i = 0; i < 4; i++)
        {
            Passengers.Add(new PassengerItem());
        }
    }
}
这将生成以下HTML:

<div class=" form-group"><label class="control-label" for="">Date Of Birth<span aria-required="true" class="required">*</span> </label><input class="form-control hasDatepicker" data-jqui-dpicker-changemonth="True" data-jqui-dpicker-changeyear="True" data-jqui-dpicker-constraininput="True" data-jqui-dpicker-dateformat="dd/mm/yy" data-jqui-dpicker-defaultdate="01/01/1970" data-jqui-dpicker-maxdate="21/09/2015" data-jqui-type="datepicker" id="Passengers_0__DateOfBirth" name="Passengers[0].DateOfBirth" value="01/01/1970" type="text"></div>
现在,如果我清除日期输入的内容并尝试提交表单,我希望它会失败,因为它是必填字段,不可为空。然而,验证通过了,没有问题

此外,如果输入的日期大于今天,则验证也将通过

因此,很明显,该领域的验证不起作用。我无法确定这是jQuery、不引人注目的验证还是两者都有问题


非常感谢任何指针。

您显示的呈现html不包括客户端验证所需的任何
data val
属性。可能是因为客户端验证已禁用,或者控件不在表单元素HMMM中。。。好的。客户端验证没有被禁用,因为我有其他正在验证的控件(只是为了简洁起见没有包括在内),并且它位于表单元素中。我怀疑这是MVC剃须刀助手的组合。
<div class=" form-group"><label class="control-label" for="">Date Of Birth<span aria-required="true" class="required">*</span> </label><input class="form-control hasDatepicker" data-jqui-dpicker-changemonth="True" data-jqui-dpicker-changeyear="True" data-jqui-dpicker-constraininput="True" data-jqui-dpicker-dateformat="dd/mm/yy" data-jqui-dpicker-defaultdate="01/01/1970" data-jqui-dpicker-maxdate="21/09/2015" data-jqui-type="datepicker" id="Passengers_0__DateOfBirth" name="Passengers[0].DateOfBirth" value="01/01/1970" type="text"></div>
 //Hook the submit functionality for the form
 $(formJQuerySelector).submit(function(aArgs) {
      aArgs.preventDefault();

     //Validate the fields with MVC validation.
     if ($(this).valid()) {
         $(confirmDialogJquerySelector).dialog('open');
     }
  });