PHP-jQuery - 如何使用月份名称填充下拉列表并将值设置为月份编号

时间:2016-09-01 23:43:02

标签: javascript php jquery html

我试图填充一个带有月份名称的下拉列表,另一个带有几天,另一个有多年,一切都很好,除了我有问题设置为月份数而不是月名。

这就是我所拥有的。

<script>
$('document').ready(function()
{
var minOffset = -70, maxOffset = -17;
var thisYear = (new Date()).getFullYear();
var m_names = ['January', 'February', 'March','April', 'May', 'June', 'July','August', 'September', 'October','November', 'December'];
var month = 0;

for (var j = month; j <= 11; j++)
    {
        var months = m_names[ 0 + j].slice( 0, 3 );
        $('<option>', {value: months, text: months}).appendTo("#dob_month");
    }

for (var i = minOffset; i <= maxOffset; i++)
    { 
        var year = thisYear + i;
        $('<option>', {value: year, text: year}).appendTo("#dob_year");
    }
});
</script>

日期选项目前以1-31的形式进行了硬编码(可能需要帮助以填充每个月的正确天数,2月总是29)。

如果选择1月份,如何将选项值设置为01?

除此之外,我对其他任何建议持开放态度。请记住,我最终将连接年 - 月 - 日以检查数据库中的日期。

4 个答案:

答案 0 :(得分:1)

如果我理解你,那么这应该有效:

$('<option>', {value: j+1, text: months}).appendTo("#dob_month");

答案 1 :(得分:1)

只需将月份更改为j + 1值

像这样

$('<option>', {value: j+1, text: months}).appendTo("#dob_month");

答案 2 :(得分:1)

for (var j = month; j <= 11; j++)
    {
        var months = m_names[ 0 + j].slice( 0, 3 );
        $('<option>', {value: j+1, text: months}).appendTo("#dob_month");
    }

将月份的值设置为1,2等。当j从0开始时,这将是j+1

答案 3 :(得分:1)

如果我理解你想要的东西,试试这个:

for (var j = 1; j <= 12; j++)
    {
        var val;
        if (j<10)
            val="0"+j
        else
            val=j

        $('<option>', {value: val, text: m_names[j-1],slice(0,3)}).appendTo("#dob_month");
    }