Как считать background с select?
Приветствую. Задача у меня следующая.
1. Функция проверки меняет цвет фона выпадающего списка (select) на красный. 2. Далее, когда пользователь выбрал другое значение, фон с красного должен поменяться снова на исходный (заданный в CSS). С первым пунктом проблем нет. select1.style.background = "#FF6161"; Проблема с обратной заменой. Я до сих пор не нашёл способа считать заданный посредством CSS цвет фона в выпадающем списке. Код: bсkgr = select1.style.background; возвращает пустую строку. Идеи? Заранее благодарен. |
Потому что свойство в style-это когда вы либо в явной форме задаете в js (select1.style.background = "#FF6161" ; ) либо в <select style="background:#FF6161"> пишете.
а если у вас background задается через имя класса в css, оно в select1.style.background не устанавливается, что логично. |
Понятно. А есть возможность считать значение прямо из CSS, если известно имя класса?
|
Конечно. css в этом вопросе, по сути, ничем не отличается от select-а )))
|
select1.style.background = ''; |
Цитата:
|
Да нет, Kolyaj прав. Если вам просто надо сбросить установку style.background в дефолтный css параметр, а не вычислять цвет в случае сложной логики, то проще варианта не найти.
|
Цитата:
Цитата:
|
Вот общее решение:
function SetEingabeError(Ctl){ bgrnd = getBackGroundColor(Ctl); Ctl.setAttribute("StdBackGround", bgrnd); Ctl.style.background = "#FF6161"; } function ResetEingabeError(Ctl){ bgrnd = Ctl.getAttribute("StdBackGround") if (bgrnd) Ctl.style.background = bgrnd; } function getBackGroundColor(Ctl) { if(window.getComputedStyle) { Farbe= window.getComputedStyle(Ctl, "").getPropertyValue("background-color"); } else if(Ctl.currentStyle) { Farbe= Ctl.currentStyle.backgroundColor; } else if(document.ids) { Farbe= document.layers[Ctl.id].bgColor; } return Farbe; } |
Часовой пояс GMT +3, время: 10:16. |