Цитата:
Не поймите меня неправильно, но ни в IE, ни в FF2 у меня не работает :( Все равно происходит повторное заполнение при клике, но теперь уже по годам. У вас работает? Цитата:
Поэтому решил по ней изучать JavaScript. Теперь буду внимательнее к коду в этой книге. Цитата:
И скрипт в вашем исполнении красив ;) |
Цитата:
|
Цитата:
Только работает он так (у меня, в ИЕ7 и ФФ2). При загрузке страницы в выборке установлено «Выберите год». Кликаем. Происходит ресайз формы до ширины 2008. Т.е. происходит повторное заполнение формы, только теперь годами. Т.е. чтобы выбрать год, нужно щелкнуть 2 раза. Вот это меня и смущает. |
если мне не изменяет память, то до момента клика в селекте находится только "Выберите год". в момент клика срабатывает событие onclick() и выполняется JS код, который заполняет селект годами. ибо если бы там было что-то кроме "Выберите год", то не сработало бы условие где .length==1 и код бы не выполнился.
|
Цитата:
Извините, если вас замучал. В таком случае думаю нужно прописать в body onload="checkYear();" Но теперь другая засада, при загрузке по-умолчанию в селекте становится 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; } |
http://javascript.ru/forum/offtopic/...html#post16016
по поводу document.form_name.el_name -> document.getElementById('el_name') - в общем-то оно вроде везде работает, но может лучше и не пользоваться такой штукой, не знаю artwalek, такие вещи лучше на сервере делать, а не на клиенте я бы сделал так: function addYears() { var year = document.form1.year; var currDate = new Date(); var currYear = currDate.getFullYear(); for( var i=currYear; i >= 2006; i-- ) { var opt = new Option(i, i); year.options[ year.options.length ] = opt; } year.selectedIndex = 1; } p.s. constYear получилась глобальной переменной |
AzriMan
Спасибо вам. Вы мне помогли! x-yuri document.form_name.el_name Мы с AzriMan выяснили, что в ФФ2 не работает. Поэтому наверное лучше не пользоваться. И этот метод описан в книге Флэнагана. Цитата:
|
Цитата:
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="en"> <head> <title>title</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body onload="alert(document.form1.asd1.value);"> <form name="form1" action="index.php"> <div><input type="hidden" name="asd1" value="4"></div> </form> </body> </html> вот такой код в ff2 (2.0.0.20) работает есть другой нюанс, в xhtml 1.0 strict у элемента form нету атрибута name :blink: p.s. но, как я говорил, я не знаю как лучше поступать Цитата:
p.s. я сказал лучше, в твоем случае вряд ли это имеет значение |
Часовой пояс GMT +3, время: 19:47. |