在HTML上使用jQuery为生日/出生日期格式选择菜单

时间:2013-09-19 17:34:58

标签: jquery date select-menu

我希望有一个标准的HTML选择菜单来选择您的出生日期。日月年。有人能指出我正确的方向使用jQuery来格式化当月的正确天数,具体取决于选择的年/月等?是否有任何插件可以实现这一目标,或者我将如何自己编写?任何建议将不胜感激。

2 个答案:

答案 0 :(得分:11)

基本上你需要三个选择框(日,月,年)以及年和月的onchange事件。

年份和月份选择框的更改需要更新天数,因为这些取决于年份和月份。为了计算给定月/年的天数,本文将有所帮助。

http://www.electrictoolbox.com/javascript-days-in-month/

工作示例JSFIDDLE

html

<select id="days"></select>
<select id="months"></select>
<select id="years"></select>

JS

$(function() {

    //populate our years select box
    for (i = new Date().getFullYear(); i > 1900; i--){
        $('#years').append($('<option />').val(i).html(i));
    }
    //populate our months select box
    for (i = 1; i < 13; i++){
        $('#months').append($('<option />').val(i).html(i));
    }
    //populate our Days select box
    updateNumberOfDays(); 

    //"listen" for change events
    $('#years, #months').change(function(){
        updateNumberOfDays(); 
    });

});

//function to update the days based on the current values of month and year
function updateNumberOfDays(){
    $('#days').html('');
    month = $('#months').val();
    year = $('#years').val();
    days = daysInMonth(month, year);

    for(i=1; i < days+1 ; i++){
            $('#days').append($('<option />').val(i).html(i));
    }
}

//helper function
function daysInMonth(month, year) {
    return new Date(year, month, 0).getDate();
}

答案 1 :(得分:1)

jQuery UI库有一个非常好且可高度定制的小部件,称为日期选择器。可以在此处找到窗口小部件的页面以及可用作参考的代码: http://jqueryui.com/datepicker/

您只需要在标题中包含jQuery和jQuery UI库:

<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

然后,创建一个普通的文本框:

<input name="Date" id="Date" value="" />

然后使用以下代码初始化日期选择器:

<script type="text/javascript">

    $(function() {
        $("#Date").datepicker({
            changeMonth: true,
            changeYear: true
            });
    };

</script>

我在datepicker小部件上添加的选项可以让您轻松跳转到几年前出生的人所需的月份/年。