Бордюр текстового поля.

 
0
 
JavaScript
ava
NightmareZ | 25.07.2007, 12:03

function testField(field, reg)
{
var x = document.getElementById(field);

if (reg.test(x.value)) {
x.style.borderColor = 'green';
return true;
} else {
x.style.borderColor = 'red';
return false;
}
}

function testLogin()
/**
* Проверяет допустимость введённого логина.
*/
{
return testField('login', /^[a-zA-ZА-Яа-я_ ]{1}[0-9a-zA-ZА-Яа-я ]{0,29}$/);
}


Почему данный код некорректно работает в Опере (не подсвечивается поле ввода)? В огнелисе и эксплорере всё нормально.
Comments (4)
ava
SelenIT | 25.07.2007, 11:12 #
NightmareZ, а как изначально стиль для этого инпута задан? У меня в Опере 9.21 Ваш пример работает (с изначальным стилем border: 2px solid #888;)...
ava
NightmareZ | 25.07.2007, 11:15 #
Цитата (SelenIT @ 25.7.2007, 11:12)
NightmareZ, а как изначально стиль для этого инпута задан? У меня в Опере 9.21 Ваш пример работает (с изначальным стилем border: 2px solid #888;)...

Изначально никак не задан.
Ну, вот, например, весь код странички:


<script>
function testField(field, reg)
{
var x = document.getElementById(field);

if (reg.test(x.value)) {
x.style.borderColor = 'green';
return true;
} else {
x.style.borderColor = 'red';
return false;
}
}

function testLogin()
/**
* Проверяет допустимость введённого логина.
*/
{
return testField('login', /^[a-zA-ZА-Яа-я_ ]{1}[0-9a-zA-ZА-Яа-я ]{0,29}$/);

}
</script>

<input id="login" onkeyup="testLogin();">
ava
SelenIT | 25.07.2007, 11:23 #
Да, если изначально стиль не задавать, то дефолтный "оперный" стиль бордюра инпута не меняется. Хотя backgroundColor в той же ситуации меняется... В общем, имхо, выход - изначально прописывать стиль бордюра, заодно и браузерные различия в отображении уменьшатся. Или менять CSS-классы...
ava
NightmareZ | 25.07.2007, 11:26 #
Понятно. Спасибо.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit