Как изменить цвет отключенного HTML-элемента управления в Internet Explorer - PullRequest
1 голос
/ 15 апреля 2010
input[disabled='disabled']
{
    background-color:#FFFBF0;
    color: #28B51D;     
}

Я использую следующий код, но он не работает в IE.

Работает в остальных браузерах.

1 Ответ

1 голос
/ 15 апреля 2010

Поскольку вы пометили свой вопрос как javascript, вот мой совет для IE: включайте сценарий ie-only с HTML-комментариями, инициирующими ie, который добавляет класс ie-disabled к каждому отключенному вводу. Если состояние входных данных может измениться после начальной загрузки страницы, добавьте на страницу временного наблюдателя, который правильно устанавливает класс.

input[disabled], input.ie-disabled
{
    background-color:#FFFBF0;
    color: #28B51D;     
}

файл javascript, включенный с условным комментарием:

function checkDisabled() {   
  var inputs = document.getElementsByTagName('INPUT');
  for(var i=0, l=inputs.length; i<l; i++) {
    if(inputs[i].disabled) {
        if(inputs[i].className.indexOf('ie-disabled')==-1)
      inputs[i].className = inputs[i].className+' ie-disabled';
    } else {
      inputs[i].className = inputs[i].className.replace('ie-disabled', '');
    }
  }
}


setInterval(checkDisabled, 1000); // check every second

Вот тест (для IE). Обратите внимание, что атрибут color css игнорируется IE для отключенных входов. Если вам действительно нужен зеленый текст, используйте readonly вместо disabled.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...