2011-06-08 9 views

Odpowiedz

6

HTML

<form id="someform"> 
<select id="year"></select> 
</form> 

JavaScript

var myselect = document.getElementById("year"), year = new Date().getFullYear(); 
var gen = function(max){do{myselect.add(new Option(year++,max--),null);}while(max>0);}(5); 

Trochę lepiej funkcja JavaScript:

var myselect = document.getElementById("year"), 
    startYear = new Date().getFullYear() 
    count = 5; 

(function(select, val, count) { 
    do { 
    select.add(new Option(val++, count--), null); 
    } while (count); 
})(myselect, startYear, count); 

jsFiddle, new jsFiddle

4

Można uzyskać listę lat jak tak ...

var date = new Date, 
    years = [], 
    year = date.getFullYear(); 

for (var i = year; i < year + 5; i++) { 
    years.push(i); 
} 

jsFiddle.

Albo faktycznie utworzyć elementu select ...

var date = new Date, 
    year = date.getFullYear(), 
    select = document.createElement('select'); 

for (var i = year; i < year + 5; i++) { 

    var option = document.createElement('option'), 
     yearText = document.createTextNode(i); 

    option.appendChild(yearText); 
    select.add(option); 
} 

select.name = 'year'; 

document.body.appendChild(select); 

jsFiddle.

+0

'var date = new Data,' powinno być 'var date = new Date(),' ponieważ jest to wywołanie konstruktora. –

+0

@ IssaacGregson It * could * be, ale nie jest wymagane. – alex

3

Jeśli używasz jQuery, zadanie może zostać osiągnięty w sposób następujący:

var currentYear = new Date().getFullYear(); 

    for (var i = 1; i <= 5; i++) { 
     $("#timeSelector").append(

      $("<option></option>") 
       .attr("value", currentYear) 
       .text(currentYear) 

     ); 
     currentYear++; 
    } 

Zobacz demo na jsFiddle

0
var currentYear = new Date().getFullYear(); 
    for (var i = 0; i < 5; i++) { 
      $("#years").append(
       $('<option/>') 
       .attr("value", currentYear + i) 
       .text(currentYear + i)); 
     } 
Powiązane problemy