2

见鬼,我想在文本框中手动添加日期格式为dd/MM/yyyy的日期。我已经声明了模型验证,但是我发现MVc不会参与日期验证,需要用jquery做,我已经完成了像那样但是。在这里,我的某些情况不正常,例如,如果我输入 10/12/20,那么我需要显示消息 dateformat 错误,因为我想要 10/12/2013。我也在使用 Bootstrap 日期选择器..但是使用 boostratp datepicker 很难选择旧日期..所以我需要使用日期格式验证手动添加日期。

//模型

[Required(ErrorMessage = "Birth Date is required")]
//[Display(Name = "When where you born?")]
[Display(Name = "Birth Date")]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
[DataType(DataType.Date)]
public DateTime? BirthDate { get; set; }

下面是jquery

//Jquery
var dateFormat = "dd/mm/yy";
$("#BirthDate").datepicker({
    dateFormat: dateFormat,
    autoclose: true,
    orientation: 'top left'
})
.on('changeDate', function (ev) {
    var dob = new Date($("#BirthDate").val());
    var today = new Date();

    var Age = parseInt(today.getFullYear()) - parseInt(dob.getFullYear());

    $("#EighteenAge").val('');
    $("#EighteenAge").val(Age);


});

$(function ($)
{
    $('#BirthDate').on("keypress", function (e)
    {
        ValidDate();
    });

});

function ValidDate()
{
    $.validator.addMethod('date',
    function (value, element)
    {

        if (this.optional(element))
        {
            return true;
        }

        var ok = true;
        try
        {
            $.datepicker.parseDate(dateFormat, value);
        }
        catch (err)
        {
            ok = false;
        }
        return ok;
    });
}

请帮助一些

4

0 回答 0