为jQuery中的下拉生成多年

时间:2011-04-21 09:02:44

标签: jquery drop-down-menu

我想出了一个小问题,我想找到一种解决方法。

基本上我想做的就是花一年时间减少18年,即:2011年返回1993年,并生成一个下拉选项,供用户在此之前选择任何一年。

基本上他们必须表明他们已超过法定年龄18岁。

4 个答案:

答案 0 :(得分:5)

var minOffset = 18, maxOffset = 100;

var thisYear = new Date().getFullYear();
var select = $('<select>');

for (var i = minOffset; i <= maxOffset; i++) {
    var year = thisYear - i;
    $('<option>', {value: year, text: year}).appendTo(select);
}

select.appendTo('body');

演示:http://jsfiddle.net/DhpBg/

答案 1 :(得分:3)

&#13;
&#13;
var minOffset = 0, maxOffset = 100; // Change to whatever you want // minOffset = 0 for current year 
var thisYear = (new Date()).getFullYear();
var m_names = ['January', 'February', 'March','April', 'May', 'June', 'July','August', 'September', 'October','November', 'December'];
var month = 0   // month = (new Date()).getMonth(); // for cuurent month
for (var j = month; j <= 11; j++) {var months = m_names[ 0 + j].slice( 0, 3 ); $('<option>', {value: months, text: months}).appendTo(".month"); }
for (var i = minOffset; i <= maxOffset; i++) { var year = thisYear + i; $('<option>', {value: year, text: year}).appendTo(".year");}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select class="year">

</select>

<select class="month">

</select>
&#13;
&#13;
&#13;

jquery的月度和年度更好的解决方案

www.jsfiddle.net/sudharshanreddyjanike/byvotshz/2 /

答案 2 :(得分:2)

你可以在没有任何jQuery的原生Javascript中轻松完成。

演示:http://jsbin.com/orasa5/2/

编辑:不确定为什么我为每个选项创建一个节点。我猜是早上一大早。

答案 3 :(得分:2)

<select name="Year" class="bdayyear">
    <option value="year">Year</option>
    <script language="javascript">
                for (var i = 1960; i < 2010; i ++) {
                    document.write("<option value=\"" + i + "\">" + i + "</option>\n");
                }
            </script>
    </select>

我希望这会有所帮助,因为这几乎就是这样做的。