Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IE сбрасывает selected 
:(
    Опции темы
Master_
Дата 6.4.2009, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



http://www.delpo.ru/

Дело в том, что selected="selected" не работает после вызова функции window.onload = function(){dynamicSelect('region', 'city');}
http://www.delpo.ru/js.js

Причем selected не работает только в IE.. 
PM   Вверх
bars80080
Дата 7.4.2009, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



Цитата(Master_ @  6.4.2009,  20:34 Найти цитируемый пост)
selected="selected

в смысле? как вы это используете?

если указывать в тэге, то просто <option selected>text</option>
если выставлять в коде, то options[4].selected = true;
PM MAIL WWW   Вверх
Master_
Дата 7.4.2009, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



Я имею ввиду если выбрать другой город, например: http://www.delpo.ru/[B]?city=28[/B]
В движке проставляется selected="selected" для <option> с value==28. 
Если посмотреть в HTML коде, то там будет такое: 
Код

<select id="city" name="city" onchange="document.location='?city='+this.value" style="width: 80px; display: inline;">
<option class="1" value="27">Чебоксары</option>
<option class="1" value="28" selected="selected">Новочебоксарск</option>
<option class="1" value="29">Канаш</option>
..........

В Firefox, Opera - работает 
IE 6-8 - не работает (просто сбрасывает на первый <option>).

Причем, если закомментировать вызов функции (находится в head) 
Код
window.onload = function(){dynamicSelect('region', 'city');}
, то в IE selected работает. 
PS: функция скрывает/показывает города в зависимости от выборанного региона (связка opion'ов - region.value<==>city.class)

Это сообщение отредактировал(а) Master_ - 7.4.2009, 09:44
PM   Вверх
bars80080
Дата 7.4.2009, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



ну так давайте, посмотрим функцию dinamicSelect
PM MAIL WWW   Вверх
Master_
Дата 7.4.2009, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



Ссылка в первом посте: http://www.delpo.ru/js.js
Как понял проблема в clonenode..
PM   Вверх
bars80080
Дата 7.4.2009, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



знаешь, после некоторых событий, не скачиваю с сети файлы с форматом .js. сложно самому выложить код функции?
PM MAIL WWW   Вверх
Master_
Дата 7.4.2009, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 31.1.2007

Репутация: нет
Всего: нет



Код
function dynamicSelect(id1, id2)
{
    if (document.getElementById && document.getElementsByTagName)// Сперва необходимо проверить поддержку W3C DOM в браузере
    {
        // Определение переменных, ссылающихся на списки
        var sel1 = document.getElementById(id1);
        var sel2 = document.getElementById(id2);
        var clone = sel2.cloneNode(true);// Клонирование динамического списка

        var clonedOptions = clone.getElementsByTagName("option");// Определение переменных для клонированных элементов списка
        refreshDynamicSelectOptions(sel1, sel2, clonedOptions);// Вызов функции собирающей вызываемый список
        // При изменении выбранного элемента в первом списке: // вызов функции пересобирающей вызываемый список
        sel1.onchange = function()
        {
            refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
        }
    }
}
// Функция для сборки динамического списка
function refreshDynamicSelectOptions(sel1, sel2, clonedOptions)
{
    // Удаление всех элементов динамического списка
    while (sel2.options.length)
        sel2.remove(0);

    var pattern1 = /( |^)(select)( |$)/;
    var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");
    
    for (var i = 0; i < clonedOptions.length; i++)// Перебор клонированных элементов списка
    {
        // Если название класса клонированного option эквивалентно "select" // либо эквивалентно значению option первого списка
        if (clonedOptions[i].className.match(pattern1) || clonedOptions[i].className.match(pattern2))
            sel2.appendChild(clonedOptions[i].cloneNode(true));// его нужно клонировать в динамически создаваемый список
    }
    //sel2.selected = sel2.defaultSelected = true;
    //alert('defaultSelected');
    
}

defaultSelected в IE тоже не работает... мда

Это сообщение отредактировал(а) Master_ - 7.4.2009, 10:07
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0733 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.