Показать сообщение отдельно
  #16 (permalink)  
Старый 23.04.2009, 17:03
Профессор
Отправить личное сообщение для AzriMan Посмотреть профиль Найти все сообщения от AzriMan
 
Регистрация: 27.02.2009
Сообщений: 215

Сообщение от artwalek Посмотреть сообщение
Да, именно так.
по-моему, это немного противоречит этому:
Сообщение от artwalek Посмотреть сообщение
Только работает он так (у меня, в ИЕ7 и ФФ2).
При загрузке страницы в выборке установлено «Выберите год».
Кликаем.
Происходит ресайз формы до ширины 2008. Т.е. происходит повторное заполнение формы, только теперь годами.
Т.е. чтобы выбрать год, нужно щелкнуть 2 раза.
по-моему достаточно кликнуть один раз по селекту. или о каком заполнении в первый раз идет речь?


Сообщение от artwalek Посмотреть сообщение
В таком случае думаю нужно прописать в body onload="checkYear();"
если вам нужно, что бы в момент клика селект УЖЕ был заполнен - тогда да. такой вариант будет наиболее оптимальным. но, насколько я понял, изначально речь не шла о том, что бы он был заполнен автоматически. поэтому и код был соответствующий.

Сообщение от artwalek Посмотреть сообщение
Но теперь другая засада, при загрузке по-умолчанию в селекте становится 2008, а хочется текущий.

Не подскажите, как исправить?
function checkYear() {
    var yearsList = document.getElementsByName('Year')[0];
    if (yearsList.value == "noValue")  
    {    // вероятно, нам не нужно заполнять повторно при клике.
        var currDate = new Date();
        var currYear = currDate.getFullYear();
     
        constYear = 2006;
        var i = currYear - constYear;

        while(constYear <= currYear) {
            var a = constYear++;
            var listYear = new Option(a, a, false, false);
            yearsList.options[i--] = listYear;
        }
    }
    yearsList.selectedIndex=0;
}
Ответить с цитированием