Почему скрипт работает только в FF, но не работает в Chrome IE Opera?

html JavaScript css веб дизайн програмирование

Скрипт нужен для фильтра тегов <option> из <select> методом js display:block; display: none;
Вот форма
<div class="form_block">
<label>Состояние:</label><input type="checkbox" checked id="p_new" onclick="pnew();" /><label for="p_new" style="float: none; clear: none; width: auto !important;">Новый</label><br />
<label>&nbsp;</label><input type="checkbox" checked id="p_old" onclick="pold();" /><label for="p_old" style="float: none; clear: none; width: auto !important;">Б/У</label><br />
</div>
<div class="form_block">
<label>Время доставки:</label>
<select name="p_product" class="p_product">
<option class="_selected" selected>Выберите продукцию</option>
<optgroup label="1200*800 EUR" id="opt1">
<option name="p01" class="itemold" value="1">P01 Европоддон Высший сорт</option>
<option name="p02" class="itemold" value="1">P02 Европоддон Первый сорт</option>
<option name="p03" class="itemold" value="1">P03 Европоддон Второй сорт</option>
</optgroup>
<optgroup label="1200*800">
<option name="p10" class="itemnew" value="1">P10 Европоддон (без клейма) Новый</option>
<option name="p12" class="itemold" value="1">P12 Европоддон (без клейма) Первый сорт</option>
<option name="p13" class="itemold" value="1">P13 Европоддон (без клейма) Второй сорт</option>
</optgroup>
<optgroup label="1200*1000">
<option name="p20" class="itemnew" value="2">P20 1200*1000 Новый</option>
<option name="p22" class="itemold" value="2">P22 1200*1000 Первый сорт</option>
<option name="p23" class="itemold" value="2">P23 1200*1000 Второй сорт</option>
</optgroup>
</select>

А вот скрипт:
var form = document.buy_app;
var p_new = document.getElementById('p_new');
var p_old = document.getElementById('p_old');

var p_product = document.getElementsByClassName('p_product');
var order_unit = document.getElementsByClassName('order_unit');
var p_sum = document.getElementsByClassName('sum');

var itemnew = document.getElementsByClassName('itemnew');
var itemold = document.getElementsByClassName('itemold');

function pnew() {
if (p_new.checked)
{
for(i=0; i<itemnew.length; i++)
{
itemnew[i].style.display = 'block';
}
}
else
{
for(i=0; i<itemnew.length; i++)
{
itemnew[i].style.display = 'none';
}
for(i=0; i<p_product.length; i++)
{
p_product[i].selectedIndex = 0;
p_product[i].value = null;
p_sum[i].value = '';
}
}
}
function pold() {
if (p_old.checked)
{
for(i=0; i<itemold.length; i++)
{
itemold[i].style.display = 'block';
}
}
else
{
for(i=0; i<itemold.length; i++)
{
itemold[i].style.display = 'none';
}
for(i=0; i<p_product.length; i++)
{
p_product[i].selectedIndex = 0;
p_product[i].value = null;
p_sum[i].value = '';
}
}
}



function allload() {
pnew();
pold();
}

window.onload = allload;
Ответы:
Скрипт нужен для фильтра тегов <option> из <select> методом js display:block;  display: none;
----------------------
в хроме и прочих даже при включении style.display='none' для option он продолжает отображатся
выхода 2
1 заменить style.display на disabled="disabled" и disabled=""
2 если вариант 1 не устраивает то удалять ненужные элементы option-в результате задача сильно усложнится


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.