Страницы: 1
Подскажите пожалуйста почему этот код работает только в 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>
Отсутствует
option'ы гарантированно скрываются только удалением...
Более того, другие CSS-свойства тоже не во всех браузерах применяются.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
option'ы гарантированно скрываются только удалением...
Более того, другие CSS-свойства тоже не во всех браузерах применяются.
Большое спасибо за ответ.. А как же тогда потом показать несколько элементов списка, без запроса на сервер? Насколько я понял после удаления я их восстановить не смогу ... Или можно какое-либо кеширование осуществить с помощью javascript? Просто я только начинающий в javascript, и ни как не ожидал такой засады..
Отсутствует
Если внутри нет 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]);
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Страницы: 1