2010-01-05 10 views
-1

Comment puis-je vérifier si textarea est caché en utilisant javascript?Validation de textarea cachée

+0

Caché comme dans, non visible? Ou pas actuellement sur la page? Ou rendu comme un contrôle '? –

Répondre

0

Internet Explorer est en quelque sorte confus si vous avez deux éléments avec le même identifiant. Bien que les choses fonctionnent bien dans Firefox, ils ne le font pas dans Internet Explorer. J'ai changé l'identifiant de textarea et ça marche maintenant.

Merci les gars.

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

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

Cela ne fonctionnera que si la visibilité a été explicitement définie sur la propriété 'style' de la zone de texte (et non, par exemple, si elle est définie par une règle CSS utilisant un sélecteur de classe) –

+0

Bon point, corrigé. – JonathanK

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

- Fonctionne avec

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

Cela ne fonctionnera que si la visibilité/l'affichage a été explicitement défini sur la propriété style de la zone de texte (et non, par exemple, si elle est définie par une règle CSS utilisant un sélecteur de classe) –

+0

merci, qu'est-ce que document.getElementById ("id") renvoie si l'ID n'existe pas dans le cas d'Internet Explorer. Il retourne NULL dans Firefox. – yogsma

+0

Yogsma, assurez-vous que l'attribut ID est défini sur votre zone de texte. J'ai mis à jour ma réponse pour refléter cela. 'getElementById (" id ")' est également sensible à la casse, assurez-vous d'écrire exactement comme je l'ai. Si l'élément n'est pas trouvé, il retournera 'undefined' ou' null' je pense. – Sampson

-1

Ne serait-il pas unhidden en premier lieu si votre css est pas le mettre à display: none; ?

Si vous voulez cacher ou montrer que vous devez simplement être en mesure d'utiliser certaines JQuery:

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

ou

$(myForm.elements).hide() 

Et ainsi de suite.

0

Avez-vous essayé elm.getBoundingClientRect()?

Il donnera toutes les valeurs nulles si l'élément ou un parent a l'affichage: aucun.
Avec la visibilité: caché l'élément est là et a alors un rectangle de boudinage.

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