jquery检查datepicker

时间:2016-01-16 17:38:01

标签: javascript jquery jquery-ui datepicker

我在表单中使用jqueryui中的datepicker。现在我要验证出生年份。这意味着我的用户不能投入高于1998年的年份(他/她必须年满18岁)。如何检查价值是否高于1998?这就是我到目前为止。

<input type="text" id="birthyear" required><br />

$(function(){
    $('#birthyear').datepicker({
        minDate: new Date(1900,1-1,1),
        defaultDate: new Date(1991,1-1,1),
        changeYear: true,
        yearRange: '-110:-18'
    });
});

3 个答案:

答案 0 :(得分:1)

您可以使用getDate:

从datepicker获取Batch file to upload all files in directory to FTP对象
lcd "G:\Navi_Touren\Tour_2015"

从那里你可以得到年份:

var date = $("#birthyear").datepicker("getDate");

如果您想确保用户年满18岁,您可能需要检查的不仅仅是年份:您还要确保今天的日期是在他们18岁生日之后

答案 1 :(得分:0)

我可以通过几种方式来实现这一目标

  1. 设置最长截止日期,以防止任何人选择超过您确定的日期

    $('#birthyear').datepicker({
        minDate: new Date(1900,1-1,1),
        defaultDate: new Date(1991,1-1,1),
        changeYear: true,
        yearRange: '-110:-18',
        maxDate: new Date(1997, 11, 31)
    });
    
  2. 将验证函数绑定到初始化时的onChangeMonthYear事件

    $('#birthyear').datepicker({
        minDate: new Date(1900,1-1,1),
        defaultDate: new Date(1991,1-1,1),
        changeYear: true,
        yearRange: '-110:-18',
        onChangeMonthYear: function(year) {
            if (year > 1998)
                ; // alert user of error
        }
    });
    
  3. 有点棘手,但如果你已经有了一些客户端验证功能,你可以得到Date这样的对象:

    $('#birthyear').datepicker('getDate').getFullYear()
    
  4. 希望有所帮助

答案 2 :(得分:0)

我看到其他一些答案正在向您展示如何确认年份但过去几年。我对一个项目要求用户年龄进行验证而不是一年的硬编码有类似的要求,虽然你要求检查年份(但括号中的年龄要求)我会建议更有活力和可维护性解决方案如下所示。

    //Initialize datepicker
         $(function() {
                $( "#dob" ).datepicker({
                    changeMonth: true,//allow month select
                    changeYear: true,//allow year select
                    yearRange: "-100:+0",//set range of year select
                    dateFormat: 'MM dd, yy',//set format of "displayed element"
                    altField: "#hidden-dob",//set alt field "hidden element"
                    altFormat: "yy/mm/dd",//set format for hidden element
                    onClose: function() {
                        $('#hidden-age').val(getUserAge($('#hidden-dob').val()));
                    }
                });
            });
    //year/month/day

//Pass the date to retrieve the users age FORMAT <yy/mm/dd> "The function that you need"
            function getUserAge(dateString) {
                var today = new Date();
                var dob = new Date(dateString);
                var age = today.getFullYear() - dob.getFullYear();
                var month = today.getMonth() - dob.getMonth();
                if (month < 0 || (month === 0 && today.getDate() < dob.getDate())) {
                    age--;
                }
                return age;
            }