8
votes

Je veux remplir cinq ans dans une liste déroulante à l'aide de JavaScript et les années seront après les années actuelles

Je veux remplir cinq ans dans une liste déroulante à l'aide de JavaScript et les années seront après l'année en cours.

Par exemple:

Si l'année en cours est 2012, les valeurs déroulantes sont 2012,2013 2014,2015,2016


1 commentaires

Créez un objet de date, obtenez l'année, d'incrémenter comme requis.


4 Réponses :


6
votes

Vous pouvez obtenir la liste des années comme ... xxx pré>

Jsfiddle . P>

ou pour créer votre Sélectionnez l'élément CODE> ELEMENT ... P>

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);


2 commentaires

var date = nouvelle date, doit être Var Date = nouvelle date (), car c'est une invocation d'un constructeur.


@Isaacregson, c'est pourraient , mais ce n'est pas nécessaire.



4
votes

Si vous utilisez JQuery, la tâche peut être obtenue comme suit:

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

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

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

        );
        currentYear++;
    }


0 commentaires

7
votes

HTML

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);


0 commentaires

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

0 commentaires