2016-04-19 6 views
1

Я создаю выпадающий список года. Как я могу автоматически заполнить выпадающий список?Заполните раскрывающийся список от определенного года до текущего года

Например, я буду добавлять выпадающее значение 1980 года, могу ли я использовать jQuery для заполнения его в текущем году, поэтому мне не нужно будет вводить весь год?

+0

Пожалуйста, если задавать вопросы всегда стараюсь показать некоторый код, ваш лучший попробовать, так что люди могут дать вам дополнительные указания , не только отвечают на фрагменты. –

ответ

2

Это простое использование цикла for и добавление к строка, как:

var nowY = new Date().getFullYear(), 
 
    options = ""; 
 

 
for(var Y=nowY; Y>=1980; Y--) { 
 
    options += "<option>"+ Y +"</option>"; 
 
} 
 

 
$("#years").append(options);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="years"></select>

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getFullYear
http://api.jquery.com/append/

3

Вы можете использовать цикл for между 1980 и текущим годом, который вы можете получить через свойство getFullYear() объекта Date. Попробуйте это:

var html = ''; 
for (var i = 1980; i <= new Date().getFullYear(); i++) { 
    html += '<option value="' + i + '">' + i + '</option>'; 
} 
$('#mySelect').html(html); 

Working example

Если вы предпочитаете, чтобы начать с текущим годом и работать вниз, вы можете использовать отрицательную итерацию, как это:

for (var i = new Date().getFullYear(); i >= 1980; i--) { 
    html += '<option value="' + i + '">' + i + '</option>'; 
} 
+0

спасибо! он работает –

+0

Без проблем, рад помочь. –

+0

Рори, На самом деле лучше начать с текущего года, я думаю, и спуститься до 1980 года. Добавьте его к вопросу, а также;) только с 'i -';) – Refilon

1

Вы можете использовать (http://www.w3schools.com/js/js_loop_for.asp)

function fillDates(startDate){ 
    yr = new Date().getFullYear(); 
    options = ""; 
    for(var i=startDate, i<=yr, i++){ 
     options += ("<option value = "+i+">"+i+"</option"); 
    } 
    $("select").append(options); 
} 


fillDates(1908); 
+0

И когда мы отправляемся в '2017' ... тогда? , – Rayon

+1

никогда не используют '.append()' в цикле. Неэффективно запрашивать DOM для селектора и изменять представление, отображающее изменение макета и рецензирование и т. Д. И т. Д. ... Использование конкатенации строк - добавление один раз. –

+0

@ Rayon Dabr, то он будет искать в Интернете и узнать о функции даты, не был включен в вопрос –

-1

смотрите ниже код

<input type="text" id="inputyear"> 
<select id="selectyear"> 

</select> 
<input type="button" value="Generate" onclick="FillYears()"> 

<script type="text/javascript"> 
function FillYears(){ 
for(var i=parseInt($("#inputyear").val());i<=(new Date().getFullYear());i++) 
{ 
    $("#selectyear").append($("<option>"+i+"</option>")); 
} 
} 
</script> 
+0

Так как это почти точная копия ответа Велимира >> ** См. Мой комментирует ответ Велимира. ** –

+0

Старайтесь всегда держать JS в стороне от HTML, я знаю, что ваш пример - это пример, но лучше использовать addEventListener вместо встраивания JS-вызовов. –

+0

это не точная копия @ RokoC.Buljan. Я создал свой собственный пример. –

-1

Chong есть много ответов, я немного позволить, чтобы обновить мой ответ на jsFiddle.

скрипку: https://jsfiddle.net/eua98tqa/8/

HTML:

<html> 

    <head> 
    </head> 

<body> 

<select> 
</select> 

</body> 

</html> 

JQuery:

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

for (var i = fromYear; i <= currentYear; i++) { 
$("select").append('<option value="' + i + '">' + i + '</option>'); 
} 
Смежные вопросы