2010-08-17 2 views
1

У меня есть обычные поля ввода HTML, которые имеют границы по умолчанию в зависимости от настроек Window/Browser.удаление стиля css с javascript

Во время проверки формы я установил границу элементов красным цветом. для примера

elem.style.border = "1px solid #ff0000"; 

Если пользователь корректирует вход, я хочу, чтобы удалить красную границу, так что поле ввода снова содержит границу с по умолчанию.

+0

Вы рассматривали jQuery? – Sam152

+2

Как поможет jQuery? –

+4

Не может jQuery вылечить голод и остановить войны? Только то, что я слышал. – Sam152

ответ

4

Это, вероятно, проще, если вы просто переключите класс.

 var addClass = function(c, e) { 
     e.className += ' ' + c; 
     }, 

     removeClass = function(c, e) { 
     e.className = e.className.replace(c, ''); 
     }; 

Использование:

addClass('redBorder', el); 
removeClass('redBorder', el); 

CSS:

.redBorder { border:1px solid red; } 
+0

удивительное решение, когда-то кто-то сделал это старомодным способом +1 – Marko

1

Лучший способ сделать это - добавить класс CSS для установки границы. Вы можете добавить класс как

.redBorder{ 
    border: "1px solid #FF0000"; 
} 

И всякий раз, когда вам нужно установить этот класс, вы можете добавить его в качестве класса для элемента. Это облегчит процесс перезагрузки.

1

В не-IE браузеров, вы можете использовать removeProperty() метод style объекта:

elem.style.removeProperty("border"); 

Тем не менее, имеет смысл добавлять и удалять класс CSS, как это было предложено Kangkan, так как это будет работать во всех основных браузерах.

0

Вот два способа в зависимости от ваших потребностей и возможностей для добавления CSS

заменяющие класс является лучшим решением в целом в случае нескольких классов - см. другие ответы, например

<style> 
.red { border:1px solid red } 
.black { border:1px solid black } 
</style> 

<input class="black" type="text" onKeyUp="this.className = isNaN(this.value)?'red':'black'"> 
<input class="black" type="text" onKeyUp="this.style.border = isNaN(this.value)?'1px solid red':'1px solid black'"> 
Смежные вопросы