给定出生日期时自动获得年龄

yop*_*tes 7 html javascript jquery jquery-ui

我想从出生之日起就知道一个人的年龄.我有一个HTML代码,我正在使用dob的datepicker,当我给出生日期时,它显示自动显示年龄而不提交.请帮我找到解决方案.

<html>
    <head>
        <title>
            DOB calculations
        </title>
        <link rel='stylesheet' type='text/css' href='jquery-ui.css' />
        <script type='text/javascript' src='jquery.min.js'>
        </script>
        <script type='text/javascript' src='jquery-ui.min.js'>
        </script>
        <script type='text/javascript' src='jquery.js'>
        </script>
        <script type='text/javascript' src='jquery-ui-custom.js'>
        </script>
        <script type='text/javascript' src='jquery.ui.datepicker.js'>
        </script>
        <script type="text/javascript">
            $(function() {

                $('#datepicker').datepicker({
                    changeMonth: true,
                    changeYear: true,
                    dateFormat: 'mm/dd/yy',
                    //firstDay: 1,
                    onSelect: function(dateText, inst) {
                        dateText.split('/');
                        Bdate = new Date(dateText[2], dateText[0] - 1, dateText[1]);
                        BDateArr = ('' + Bdate).split(' ');
                        //document.getElementById('DOW').value = BDateArr[0]; 
                        Cdate = new Date;
                        CDateArr = ('' + Cdate).split(" ");
                        Age = CDateArr[3] - BDateArr[3];
                        document.getElementById('AGE').value = Age;
                        // DOBcalc(dateText); 
                        //DOBcalc(); 
                    }
                })

            });
        </script>
    </head>

    <body>
        <form>
            DOB (mm/dd/yyyy):
            <input type="text" id="datepicker" value=''>
            Age:
            <input id="AGE" type="text" value="">
        </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Yi *_*ang 10

您可以尝试使用此函数作为onSelect事件处理程序:

$('#dob').datepicker({
    onSelect: function(value, ui) {
        var today = new Date(),
            dob = new Date(value),
            age = new Date(today - dob).getFullYear() - 1970;

        $('#age').text(age);
    },
    maxDate: '+0d',
    yearRange: '1920:2010',
    changeMonth: true,
    changeYear: true
});
Run Code Online (Sandbox Code Playgroud)

这应该是非常准确的(并且比我的旧代码好得多),因为所有内容都已传递给本机Date对象.

请看这里的简单演示:http://www.jsfiddle.net/yijiang/PHvYK/1