выбор.стиль.display = "none" не работает в safari [дубликат]

этот вопрос уже есть ответ здесь:

этот пример я работаю на: http://jsfiddle.net/4suwY/5/

HTML:

<select id="asd">
    <option>hello</option>
    <option>I'M THE CHOSEN ONE</option>
    <option>asd</option>
    <option>wer</option>
    <option>qwe</option>
</select>

JS:

var sel = document.getElementById("asd");
var optnz = sel.getElementsByTagName("option")[1];
sel.value = optnz.value;
optnz.style.display = "none";

как вы можете видеть, это работает в chrome, но не работает в safari.. Что он должен сделать, это скрыть опцию "я избранный", когда вы нажимаете раскрывающееся меню..

Это еще один тест, который я сделал: http://jsfiddle.net/4suwY/11/

тот же HTML, это JS:

var sel = document.getElementById("asd");
var opt = document.createElement("option");
opt.innerHTML = "YAYA";
opt.value = "YAYA";
sel.appendChild(opt);
sel.value = "YAYA";
opt.style.display = "none";

В любом случае, что мне нужно сделать, это отобразить опцию как выбранную (текущую), и скрыть пользователю, когда открывается выпадающее меню, поэтому он не может ее выбрать.

любое предложение / обходной путь? Я не вижу никакой ошибки. Что случилось с сафари? Должен ли я изменить подход? Кажется, что Jquery не помогает.


изменения:

мне нужно скрыть параметры в dropdownmenu, но в то же время мне нужно показать эту опцию "значение" в качестве выбранного значения! Например, раскрывающийся список " закрыто "покажет значение" я избранный", но если я нажму и открою меню, единственными видимыми параметрами будут"hello, asd, wer, qwe"..

1 ответов


вы не можете переключить дисплей на <option> элементы в Safari (или IE, если на то пошло). Это часть давней и непоследовательной традиции с Safari, ограничивающей функциональность стиля CSS на элементах формы, полагая, что визуальный язык интерактивных элементов должен соответствовать ОС (нет смысла пытаться найти обоснование недостатков IE).

ваши единственные варианты либо удалить его (и повторно добавить его позже), или установить его в optnz.disabled = true. Извините за плохие новости!