Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№127-02-2010 17:02:22

deeserge
Участник
 
Группа: Members
Зарегистрирован: 27-02-2010
Сообщений: 2
UA: Opera 10.0

Почему работает только в Mozilla

Подскажите пожалуйста почему этот код работает только в Mozilla, а в Opera и IE нет?

function  criticality(form)
{
if(window.document.getElementById('CATEGORY_ID').value == 34)
{
      window.document.getElementById('CRITICALITY_ID').options[2].style.display = 'block';
      window.document.getElementById('CRITICALITY_ID').options[3].style.display = 'block';
}
else
{
      window.document.getElementById('CRITICALITY_ID').options[2].style.display = 'none';
      window.document.getElementById('CRITICALITY_ID').options[3].style.display = 'none';
}
}


<tr>
<td class="field-name">Категория:</td>
<td>
<select id="CATEGORY_ID" name="CATEGORY_ID" onchange="criticality(this.form)">
<option value="35">Консультация</option>
<option value="34">Ошибка</option>
<option value="36">Новое требование</option>
</select>
</td>
</tr>

<tr>
<td class="field-name">Критичность:</td>
<td>
<select id="CRITICALITY_ID" name="CRITICALITY_ID" onclick="criticality(this.form)">
<option value="4" style="display: block;">Низкая</option>
<option value="5" style="display: block;">Средняя</option>
<option value="6" style="display: block;">Высокая</option>
<option value="26" style="display: block;">Авария</option>
</select>
</td>
</tr>





и вот этот тоже работает только в Mozilla..

function  criticality(form)
{
if(form.CATEGORY_ID.value == 34)
{
      form.CRITICALITY_ID.options[2].style.display = '';
      form.CRITICALITY_ID.options[3].style.display = '';
}
else
{
      form.CRITICALITY_ID.options[2].style.display = 'none';
      form.CRITICALITY_ID.options[3].style.display = 'none';
}
}


<tr>
<td class="field-name">Категория:</td>
<td>
<select id="CATEGORY_ID" name="CATEGORY_ID" onchange="criticality(this.form)">
<option value="35">Консультация</option>
<option value="34">Ошибка</option>
<option value="36">Новое требование</option>
</select>
</td>
</tr>
 
<tr>
<td class="field-name">Критичность:</td>
<td>
<select id="CRITICALITY_ID" name="CRITICALITY_ID" onclick="criticality(this.form)">
<option value="4" style="display: block;">Низкая</option>
<option value="5" style="display: block;">Средняя</option>
<option value="6" style="display: block;">Высокая</option>
<option value="26" style="display: block;">Авария</option>
</select>
</td>
</tr>

Отсутствует

 

№227-02-2010 18:42:28

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.6

Re: Почему работает только в Mozilla

option'ы гарантированно скрываются только удалением... =/
Более того, другие CSS-свойства тоже не во всех браузерах применяются.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№301-03-2010 10:18:58

deeserge
Участник
 
Группа: Members
Зарегистрирован: 27-02-2010
Сообщений: 2
UA: Opera 10.0

Re: Почему работает только в Mozilla

Infocatcher пишет

option'ы гарантированно скрываются только удалением... =/
Более того, другие CSS-свойства тоже не во всех браузерах применяются.

Большое спасибо за ответ.. А как же тогда потом показать несколько элементов списка, без запроса на сервер? Насколько я понял после удаления я их восстановить не смогу :(... Или можно какое-либо кеширование осуществить с помощью javascript? Просто я только начинающий в javascript, и ни как не ожидал такой засады..

Отсутствует

 

№401-03-2010 14:52:50

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.6

Re: Почему работает только в Mozilla

Если внутри нет optgroup, то примерно так:

Выделить код

Код:

var select = document.getElementById("CRITICALITY_ID");
var optionsArr = [];
var options = select.options;
for(var i = 0, len = options.length; i < len; i++)
    optionsArr.push(select.removeChild(options[i]));
// ...
select.appendChild(optionsArr[1]);
select.appendChild(optionsArr[3]);

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]