验证日期范围

时间:2012-04-02 21:32:10

标签: jquery

我正在使用日期选择器为我的表单选择日期,我如何控制日期不能大于实际日期,以及如何控制另一个日期应该在-x天和+之间x天?

感谢。

我尝试下一个代码,但它不起作用。

$.validator.addMethod("greaterThan",
                function(value, element, params) {
                    if (!/Invalid|NaN/.test(new Date(value))) {
                        return new Date(value) > new Date($(params).val());
                    }
                    return isNaN(value) && isNaN($(params).val())
                        || (parseFloat(value) > parseFloat($(params).val()));
                    }, 'Must be greater than {0}.');


$.datepicker.setDefaults({

    dateFormat: 'yy/mm/dd',
    dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
    monthNames: ['Enero de', 'Febrero de', 'Marzo de', 'Abril de', 'Mayo de', 'Junio de', 'Julio de', 'Agosto de', 'Septiembre de', 'Octubre de', 'Noviembre de', 'Diciembre de'],
    nextText: 'Siguiente',
    prevText: 'Anterior'

});

$(function() {
    $("#tbFechaInicio").datepicker({ minDate: -20, maxDate: "+1M +10D" });
});
$(function() {
    $("#tbFechaEntrega").datepicker({ minDate: -20, maxDate: "+1M +10D" });
});

2 个答案:

答案 0 :(得分:2)

您是否尝试过jQuery UI日期选择器组件?

http://jqueryui.com/demos/datepicker/#min-max

您可以使用minDatemaxDate选项指定限制,即使使用+和 - 也可以使用动态日期范围。这也可以将文本框中的输入限制为有效日期。

这是一个很棒的工具,为什么要重新发明轮子呢?

答案 1 :(得分:0)

您可以使用以下内容控制最大日期和最短日期

$("#yourdatepickerid").datepicker({ 
    dateFormat: 'yy-mm-dd',
    maxDate: '-1d',
    minDate: new Date(2008, 1 - 1, 1)
});