2010-01-05 3 views

ответ

0

Internet explorer как-то путается, если у вас есть два элемента с одинаковым идентификатором. Хотя все прекрасно работает в firefox, они не работают в Internet Explorer. Я изменил идентификатор textarea, и теперь он работает.

Спасибо, ребята.

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

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

Это будет работать, только если видимость явно указана в свойстве 'style' textarea (а не, например, если установлена ​​правилом CSS с использованием селектора классов) –

+0

Хорошая точка, исправлена. – JonathanK

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 с помощью селектора классов) –

+0

спасибо, что делает document.getElementById («id») возвращается, если идентификатор не существует в случае Internet Explorer. Он возвращает NULL в firefox. – yogsma

+0

Yogsma, убедитесь, что у вас есть атрибут ID, установленный в вашем текстовом поле. Я обновил свой ответ, чтобы отразить это. 'getElementById (« id »)' также чувствителен к регистру, убедитесь, что вы пишете именно то, что у меня есть. Если элемент не найден, он вернет 'undefined' или' null', я думаю. – Sampson

-1

Не было бы нескрываемым в первую очередь, если ваш CSS не устанавливая его на дисплей: нет; ?

Если вы хотите, чтобы скрыть или показать его, вы просто должны быть в состоянии использовать некоторые JQuery:

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

или

$(myForm.elements).hide() 

И так далее.

0

Вы попробовали elm.getBoundingClientRect()?

Он отображает все нулевые значения, если элемент или родитель имеет отображение: none.
С видимостью: скрытый элемент есть, а затем есть прямоугольник.

<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> 
Смежные вопросы