Forum Webscript.Ru
Программирование => JavaScript & JScript => Тема начата: Nickolaz от 11 Января 2007, 10:15:01
-
Здравствуйте!
Есть такой код:
var sel = document.createElement(\'SELECT\');
sel.name = \'ORDERNUM[\' + val + \']\';
sel.onchange = change_order;
sel.onclick = save_order;
var opt;
for(var i=0;i {
opt = document.createElement(\'OPTION\');
opt.text = i+1;
opt.value = i+1;
sel.options[i] = opt;
if (i+1 == val)
{
opt.selected = true;
sel.selectedIndex = i;
}
}
return sel;
Создает селект, добавляет обработчики, но никак не хочет устанавливать элемент списков в Опере! Подскажите, как это сделать - в IE работает opt.selected = true;, читал что в опере должно работать sel.selectedIndex = i; - но нет!
Опера - Version 7.02
-
Полный код функции приведи, пожайлуйста..
-
html_coder
это и есть полный код. Выше - заголовок. Передаются val - любое число, записывается в имя селекта и выделяет определенный элемент, valcount - это общее количество чисел в списке.
Повторю - в эксплорере всё работает, а вот в опере не выделяет, т.е. все создаваемые селекты появляются с выделенным первым элементом :(
-
Nickolaz
Так.. Ну чесно говоря я просто в затупе пока, попробовал запустить твой код в 7.0, действительно не работает, но при этом нормально работает в 8.5 и 9.0.
Если не создавать select динамически, то значение selectedIndex можно получать, это видно из этого примера http://www.w3schools.com/js/tryit.asp?filename=try_dom_option_index, по крайней мере в 7.0, оно работает, а вот если создать список динаически, и потом вывести все свойства объекта, то в в 7 версии почему-то нет свойства selectedIndex.
Здесь http://www.opera.com/docs/specs/opera7/js/dom/html/ по-моему четко сказано что поддерживается, так что будем ломать голову дальше
Буду думать ещё, интересно в чем же проблема...
Может пока, кто-то подскажет ещё что-то...
-
пока не добавил наследование
document.body.appendChild(sel);
sel.appendChild(opt);
в соответсвующие места, вообще отказывалось работать где либо..
-
xames
понятно, что элементик после выполнения функции куда-то клеится - думаю, все, кто мог бы ответить на мой вопрос, догадались, что надо это делать, так что не вставлял полный код программы. А вот почему не устанавливается начальное значение - всё еще загадка :(
В принципе, 7й оперой мало кто из посетителей пользуется, да и кроме этого случая я находил препятствия в этой версии, так что решил ее просто не учитывать. Но если ответ на этот вопрос будет дан - буду очень благодарен!