2009-05-21 5 views
2

J'ai une étiquette qui est parfois vide. Comment configurer une instruction conditionnelle côté client pour tester cela?javascript - trouvez la longueur d'une étiquette et si elle est vide?

i ont

var label = document.getElementByID("<%=label1.ClientID %>").innerHTMl; 

pour obtenir le texte, mais je ne peux pas sembler trouver un statment if..else si elle est vide ou non. label.length == 0; label == null, etc ne semble pas fonctionner. de l'aide?

+0

@halp - typo corrigée sur le titre de la question. – RSolberg

+0

Quelle est la valeur de l'étiquette quand elle est vide (si c'est '' alors label.length devrait fonctionner)? – BYK

+1

@BYK La valeur n'est pas initialisée - elle est définie sur onpageload si quelque chose d'autre se produit – halp

Répondre

1

essayez ceci:

if(label){ 
    // The label is defined 
} 

Ni le cas ni d'autre sur elle peut exécuter si son non défini, de façon préférable de ne pas utiliser un autre sur ce (semble bizarre, mais je viens de faire un chèque avec Firefox) .

+0

Ceci est plutôt élégant. Agréable. –

0

est ici quelque chose de mieux:

var id = "<%= label1.ClientID %>"; 
var label = id.length > 0 ? document.getElementById(id).innerHTML : ""; 

(En supposant que c'est Ruby ici ...)

+1

est-ce ASP? ahh, il me prend en arrière ...... – alex

0

Utilisez ce code:

var labelID = '<%=label1.ClientID %>'; 
if (labelID.length!=0) 
    var label = document.getElementByID(labelID).innerHTMl; 
else... 
+0

2ème ligne ne fonctionnera pas - longueur est une propriété, pas une fonction. – fig

+0

Correction, merci. –

0

Une chaîne vide est falsy, comme quelque chose qui est nul.

Si l'étiquette existe toujours (document.getElementByID ("<% = label1.ClientID%>") renvoie toujours un élément html), alors ce qui précède devrait fonctionner.

Cependant, l'étiquette peut sembler vide. Il pourrait y avoir une chaîne vide à l'intérieur. Donc, essayez ceci:

var label = document.getElementByID("<%=label1.ClientID %>").innerHTMl; 
if (label.replace(/\s/g, '')) { 
    // handle it 
} 
Questions connexes