2010-01-05 94 views
-1

如何檢查textarea是否使用javascript隱藏?隱藏文本區驗證

+0

隱藏在,不可見?或目前不在網頁上?或者呈現爲''控件? – 2010-01-05 16:26:53

回答

0

如果您有兩個具有相同ID的元素,Internet Explorer會以某種方式混淆。雖然Firefox在Firefox中運行良好,但它們不在Internet Explorer中。我改變了textarea的ID,它現在正在工作。

謝謝你們。

1
var textArea = document.getElementById('textAreaId'); 

if (textArea.currentStyle.visibility === 'hidden' || textArea.currentStyle.display === 'none') 
{ 
    /* code */ 
} 
+0

只有在textarea的'style'屬性上明確設置了可見性(例如,如果通過使用類選擇器的CSS規則設置),纔會有效 – 2010-01-05 17:42:39

+0

好點,已更正。 – JonathanK 2010-01-05 20:22:51

1
var myBox = document.getElementById("myBox"); 
if (myBox.currentStyle.display === "none" || myBox.currentStyle.visibility === "hidden") { 
    alert("Box is invisible"); 
} 

- 與

<textarea id="myBox">Lorem ipsum doloet set amit</textarea> 
+0

只有在textarea的樣式屬性上明確設置了可見性/顯示時(例如,如果通過使用類選擇器的CSS規則設置),纔會有效。 – 2010-01-05 17:43:13

+0

謝謝,document.getElementById(「id」)是什麼意思如果Internet Explorer中不存在該標識,則返回該標識。它在Firefox中返回NULL。 – yogsma 2010-01-05 20:35:01

+0

Yogsma,確保你的textarea上設置了ID屬性。我已經更新了我的答案以反映這一點。 'getElementById(「id」)'也是區分大小寫的,確保你寫的和我的一樣。如果找不到元素,我想它會返回undefined或null。 – Sampson 2010-01-05 21:18:33

-1

工作豈不是擺在首位,如果未隱藏你的CSS是不是設置爲顯示:無; ?

如果要隱藏或顯示它,你就應該能夠使用一些JQuery的:

$(document.body).css("display", "none"); 

$(myForm.elements).hide() 

等。

0

你試過elm.getBoundingClientRect()嗎?

如果元素或父元素具有display:none,它將給出所有零值。
可見性:隱藏元素在那裏,然後有一個boudning矩形。

<html> 
<head> 
    <title>hidden</title> 
</head> 
<body> 
<div style="display:none"> 
    <form> 
     <textarea></textarea> 
    </form> 
</div> 
<script> 
    var rect = document.getElementsByTagName('TEXTAREA')[0].getBoundingClientRect(); 
    alert(rect.right === 0 ? 'hidden':'visible'); 
</script> 
</body> 
</html>