Автор Тема: select + opera  (Прочитано 4806 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Nickolaz

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 38
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
select + opera
« : 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

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
select + opera
« Ответ #1 : 11 Января 2007, 11:33:00 »
Полный код функции приведи, пожайлуйста..

Оффлайн Nickolaz

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 38
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
select + opera
« Ответ #2 : 11 Января 2007, 15:20:24 »
html_coder
это и есть полный код. Выше - заголовок. Передаются val - любое число, записывается в имя селекта и выделяет определенный элемент, valcount - это общее количество чисел в списке.

Повторю - в эксплорере всё работает, а вот в опере не выделяет, т.е. все создаваемые селекты появляются с выделенным первым элементом :(

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
select + opera
« Ответ #3 : 11 Января 2007, 16:29:30 »
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/ по-моему четко сказано что поддерживается, так что будем ломать голову дальше

Буду думать ещё, интересно в чем же проблема...

Может пока, кто-то подскажет ещё что-то...

Оффлайн xames

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 62
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
select + opera
« Ответ #4 : 19 Января 2007, 14:38:35 »
пока не добавил наследование

document.body.appendChild(sel);
sel.appendChild(opt);

в соответсвующие места, вообще отказывалось работать где либо..

Оффлайн Nickolaz

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 38
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
select + opera
« Ответ #5 : 19 Января 2007, 22:24:22 »
xames
понятно, что элементик после выполнения функции куда-то клеится - думаю, все, кто мог бы ответить на мой вопрос, догадались, что надо это делать, так что не вставлял полный код программы. А вот почему не устанавливается начальное значение - всё еще загадка :(
В принципе, 7й оперой мало кто из посетителей пользуется, да и кроме этого случая я находил препятствия в этой версии, так что решил ее просто не учитывать. Но если ответ на этот вопрос будет дан - буду очень благодарен!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28