Как считать 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, время: 09:21. |