【问题标题】:Date picker using jquery for dob year validation使用 jquery 进行出生年验证的日期选择器
【发布时间】:2015-09-04 05:57:59
【问题描述】:

我正在使用来自 Jquery 的日期选择器。目前我面临一个问题的地方 默认情况下,日历将显示到 2100 年,但如果用户选择任何功能日期或当前日期,系统不应接受。系统应接受距今天日期至少 10 年前的日期。

我有点困惑,我尝试了最小年份和最大年份,但如果我给出的年份范围为 1900 年到 2015 年,日历只显示到 2015 年 9 月,但我想显示到 2100 年

这里是 jsbin Link

各位大侠帮帮忙

这里是 Jquery 代码

 $("#txt_dob").datepicker({
    dateFormat: "mm-dd-yy",
    changeMonth: true,
    changeYear: true,

    //showButtonPanel: true,
    yearRange: '-115:+10',
    beforeShow: function () {
        setTimeout(function (){
        $('.ui-datepicker').css('z-index', 99999999999999);

        }, 0);
    },

}).on('change', function() {
    if($('#txt_dob').valid()){
        $('#txt_dob').removeClass('errRed');
    }
    // triggers the validation test on change

});

提前致谢

【问题讨论】:

  • 使用maxDate 选项设置用户可以选择的最大日期。 Docs
  • 我检查了那个老板它不工作
  • 它正在工作。检查this.just 将您的代码带到 jsfiddle 并放入 maxDate 选项,我没有做任何其他事情

标签: javascript jquery datepicker jquery-ui-datepicker


【解决方案1】:

我的解决方案是创建一个 Date 对象:
var date = new Date(); // current date
然后减10年:
date.setFullYear(date.getFullYear() - 10)
然后将此日期设置为日期选择器的最大日期

$("#txt_dob").datepicker({
    dateFormat: "mm-dd-yy",
    maxDate: date,
    changeMonth: true,
    changeYear: true
});

【讨论】:

  • @cracker 感谢您的回答,但我的问题是用户希望看到日历到 2100 年,但字段应该只接受从今天起 10 年
  • 然后将maxDate改为minDate
  • @Mahadevan,我已经编辑它由其他人回答
  • @Ghassen 我的日历必须显示从 1900 年到 2100 年,但系统应该只接受从今天起至少 10 年前的日期
  • 在您的 onChange 函数中添加此代码 var pattern = /(\d{2})\-(\d{2})\-(\d{4})/; var currentDate = new Date(); var selectedDate = new Date($(this).val().replace(pattern,'$3-$1-$2'));然后比较selectedDate和currentDate,差值必须小于等于10年
【解决方案2】:

使用日期选择器的maxDate属性如下:

maxDate: '-10Y'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多