2009-05-21 12 views
2

ラベルが空であることがあります。これをテストするためにクライアント側で条件文を設定するにはどうすればよいですか?javascript - ラベルの長さを見つけ、それが空の場合は?

私はテキストを取得するために

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

を持っていますが、私はそれが空であるかどうかif..elseなステートメントを見つけ出すように見えることはできません。 label.length == 0; label == nullなどは動作しないようです。どんな助け?

+0

@halp - 修正タイトル – RSolberg

+0

ラベルが空の場合のラベルの値は何ですか(「 ''ならばlabel.lengthは動作するはずです)? – BYK

+1

@BYK値は初期化されていません。他の場合は、ページロードに設定されます。 – halp

答えて

1

はこれを試してみてください。

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

場合もそうでないことにどちらもとても最高これで他を使用しないように、その未定義は(奇妙なようだが、私はFirefoxでチェックをしなかった)場合には実行することができます。 。このコードを使用し

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

(これはここでルビーと仮定すると...)

+0

これはややエレガントです。ニース。 –

0

ことはここでは、より良い何か

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

はそのASPですか?ああ、それは私を取り戻す...... – alex

0

+0

2行目は機能しません - 長さはプロパティであり、関数ではありません。 – fig

+0

修正しました。ありがとうございます。 –

0

空の文字列を何かがあるとして、falsyですヌル。

ラベルが常に存在する場合(document.getElementByID( "<%= label1.ClientID%>")は常にhtml要素を返します)、上記が有効になります。

ただし、ラベルは空白にしか見えない場合があります。その中に空の文字列を入れることができます。だから、これを試してみてください:

var label = document.getElementByID("<%=label1.ClientID %>").innerHTMl; 
if (label.replace(/\s/g, '')) { 
    // handle it 
} 
関連する問題