使用jQuery以mm.dd.yyyy格式验证日期

时间:2011-11-28 14:53:41

标签: jquery

由于我无法获得与jQuery datapicker相关的问题的任何解决方案,我想我可能需要编写代码来自己验证日期。我有一个日期格式为mm.dd.yyyy的文本框。如何验证文本框中的日期不应大于模糊时的当前日期?

Reminder.config = {
    BaseURL: "Reminder.ashx?" + Reminder.BaseURLQuery,
    tblHistory: "#tblHistory",
    txtNotes: "#txtNotes",
    txtDate: "#txtDate",
    btnSave: "#btnSave",
    dateFormat: 'mm.dd.yy',
};

Reminder.Init = function () {
//Set up calendar 
var $txtDate = $(Reminder.config.txtDate);
$txtDate.datepicker({
    dateFormat: Reminder.config.dateFormat,
    onClose: function (dateText, inst) {
        try {
            $.datepicker.parseDate(Reminder.config.dateFormat, dateText);
        } catch (e) {
            $txtDate.val('');
        };
    },
    maxDate: '+0'
});

$txtDate.datepicker('setDate', new Date()).blur(function () {
        try {
            if ($txtDate.val() == '') {
                $txtDate.datepicker('setDate', new Date());
            }            
        }
        catch (ex) {
            var myEx = myWeb.Exception(ex);
            myEx.AddData("Method", "$txtDate.datepicker('setDate', new Date()).blur");
        }
    });

};

3 个答案:

答案 0 :(得分:1)

首先,您已经将日期选择器限制为未来选择日期。 但你不能说出那个问题似乎......不管怎样......

像这样的模糊偶数处理程序应该按预期工作:

$txtDate.blur(function(e){
    // this is now
    var now = new Date();

    // let date picker parse the date since it has formatting set
    var date = $txtDate.datepicker("getDate");

    // is date ok then?
    if ((date || new Date()) >= now)
    {
        alert("Does not compute");
    }
});

答案 1 :(得分:0)

我首先从文本框中解析提供的日期,然后将它的getTime()返回值与(new Date())的值进行比较.getTime()返回值。

如果第一个大于后者,那么您提供的日期将在未来。

答案 2 :(得分:0)

您可以使用date.js验证任何日期格式