2011-04-21 39 views
2

我想出了一个小问题。那正试图想出一种方法来解决它。jQuery生成多年。对于下拉

Baisclly我想要做的是采取18年的年份,即:2011年返回1993年。 并生成一个下拉选项,用户选择任何一年之前。

baisclly他们必须表明他们是18

的法定年龄以上如果你能帮助将是巨大的。

回答

4
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/

2

你可以在没有任何jQuery的情况下使用原生Javascript来做到这一点。

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

编辑:不知道为什么,我创造了每一个选项的节点。我想,这是凌晨。

+0

请给源代码 – 2014-01-23 10:44:55

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> 

我希望帮助,因为这是非常如何做到这一点。的jQuery月份和年份

2

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");}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<select class="year"> 
 

 
</select> 
 

 
<select class="month"> 
 

 
</select>

更好的解决方案

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