2010-08-17 58 views
1

我有正常的HTML輸入字段,具有取決於窗口/瀏覽器設置的默認邊界。使用javascript去除css樣式

在表單驗證過程中,我將元素的邊框設置爲紅色。例

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

如果用戶修正輸入,我想刪除了紅色的邊框,使輸入字段包含的 默認邊框。

+0

你有沒有考慮過jQuery? – Sam152 2010-08-17 08:39:01

+2

jQuery如何提供幫助? – 2010-08-17 08:40:34

+4

不能jQuery治療飢荒,並停止戰爭?正是我聽到的。 – Sam152 2010-08-17 08:41:25

回答

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 2010-08-17 08:52:02

1

這樣做的最好方法是添加一個CSS類來設置邊框。您可以添加一個類,

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

,每當你需要設置這個類,你可以添加此作爲類的元素。這將簡化重置過程。

1

在非IE瀏覽器,你可以使用style對象的removeProperty()方法:

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'">