IE7 выбрать опцию цвет текста не отображается правильно - PullRequest
0 голосов
/ 07 сентября 2011

Я работаю с IE7. Я получил следующее правило CSS:

form [disabled] {
    color: #999 !important;
}

В событии jQuery ready () я отключаю все опции в SELECT:

$('#mySelect option').attr('disabled', 'disabled');

и затем снова включите некоторые из этих отключенных опций:

('#myOption').removeAttr('disabled');

Теперь все выглядит хорошо. В этом случае каждый параметр имеет серый текст, кроме первого.

Но если я изменю отключенный атрибут одного параметра после загрузки страницы, например, после нажатия на кнопку цвет больше не меняется.

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

То же самое наоборот. Если я добавлю атрибут disabled в опцию, которая раньше не отключалась, я вижу атрибут attrbibute, установленный на панели инструментов разработчика, и вижу, что цвет установлен на значение, определенное в CSS, но я не вижу его в реальном окне браузера. , Все еще старый цвет.

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

Но я хочу по крайней мере иметь серый цвет на элементах, которые пользователь не должен выбирать. Я не могу заставить это работать должным образом.

Есть ли способ, как я могу заставить это работать?

1 Ответ

1 голос
/ 07 сентября 2011

В качестве простого обходного пути вы можете установить класс disabled для элементов при их отключении.

JS:

$('#mySelect option').addClass('disabled').attr('disabled', 'disabled');

JS:

('#myOption').removeClass('disabled').removeAttr('disabled');

CSS:

form .disabled {
    color: #999 !important;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...