Это может быть сложной проблемой. После нескольких попыток я нашел довольно чистое решение. Пусть браузер сделает всю работу за вас.
Шаг 1: Создайте div с установленным нулевым стилем границы. Элемент div можно расположить за пределами экрана или любой элемент div на вашей странице, который не использует границы.
Шаг 2. Установите цвет границы для пустой строки. Код может выглядеть примерно так:
e=document.getElementbyId('mydiv');
e.style.borderColor="";
Шаг 3. Установите цвет границы на цвет, в котором вы не уверены.
e.style.borderColor=testcol;
Шаг 4: Проверьте, не изменился ли цвет. Если testcol недействителен, никаких изменений не произойдет.
col2=e.style.borderColor;
if(col2.length==0) {alert("Bad Color!");}
Шаг 5. Очистите себя, вернув цвет пустой строке.
e.style.borderColor="";
Див:
<div id="mydiv" style="border-style:none; position:absolute; left:-9999px; top:-9999px;"></div>
Теперь функция JavaScript:
function GoodColor(color)
{
var color2="";
var result=true;
var e=document.getElementById('mydiv');
e.style.borderColor="";
e.style.borderColor=color;
color2=e.style.borderColor;
if (color2.length==0){result=false;}
e.style.borderColor="";
return result;
}
В этом случае функция возвращает истинный / ложный ответ на вопрос, другой вариант - вернуть правильное значение цвета. Ваше исходное значение цвета, значение из borderColor или пустая строка вместо недопустимых цветов.