jquery datepicker验证返回分配大小过载错误

时间:2014-06-03 06:04:59

标签: javascript jquery datepicker

我正在使用jquery datepicker插件创建一个出生日期输入。该插件有效,但我想验证只有18岁生日的人才会被允许。我试过限制年份,但我有一个错误分配大小超载和它指的是年份。

这是我的代码:

$(function() {
    var dateNow = ($.now() - 18);
    $( "#birthdate" ).datepicker({
      yearRange: "1920:" + dateNow,
      changeMonth: true,
      changeYear: true,
      dateFormat: 'yy-mm-dd'
    });
  });

2 个答案:

答案 0 :(得分:1)

尝试类似:

$(function() {
    var now = new Date();
    now.setFullYear(now.getFullYear() - 18);

  $( "#birthdate" ).datepicker({
    yearRange: "1920:" + now.getFullYear(),
    changeMonth: true,
    changeYear: true,
    dateFormat: 'yy-mm-dd'
  });
});

答案 1 :(得分:1)

如果您必须在用户输入日期后进行检查,请使用以下代码段。

<强> Demo Fiddle.

$(function() {
    $('#birthdate').datepicker({

        changeMonth: true, maxDate: '0',changeYear: true, yearRange: '1900:2014',        dateFormat: 'dd-mm-yy',
        onClose: function(){

        var today = new Date(), 
        birthday = $('#birthdate').datepicker("getDate"),
        age = (
          (today.getMonth() > birthday.getMonth())
          ||
          (today.getMonth() == birthday.getMonth() && today.getDate() >= birthday.getDate())
          ) ? today.getFullYear() - birthday.getFullYear() : today.getFullYear() - birthday.getFullYear()-1;

           if(age>=18){
              alert('18+');
           }else{
              alert('not 18');
           }    
       }

   });
});

如果您希望将用户限制在18以下,请更改yearRange的{​​{1}}属性

<强> Demo For this