2012-02-21 21 views
0

私はjavascriptを初めて使用しています。 フラグ( "IsValid")の値に応じて、ラベル( "lblerrmsg")のテキストと色を設定しようとしています。私は.jsファイルに関数を書いて、それをVSで構築したWebサイトに添付しました。getElementByIdは成功した後にnullを返します

特に、関数getElementById( 'lblErrMsg')は、最初に呼び出されたときに正しく機能しますが、サブクエリ呼び出しではnullを返します。 (これは関連性があるかどうかを知るしないでください - しかし、関数の呼び出しの間には柱がない)

次の関数の関連部分です:あなたはそれを行う場合

// If IsValid is false - make the text red 
var ErrMsg = document.getElementById('lblErrMsg'); 
if (IsValid) { 
    document.activeElement.style.color = 'navy'; 
    ErrMsg.outerHTML = 'valid'; 
} 
else { 
    document.activeElement.style.color = 'red'; 
    ErrMsg.outerHTML = "*** Invalid Entry ***"; 
    ErrMsg.style.color = 'red'; 
} 


<asp:TextBox ID="tbNumber" runat="server"></asp:TextBox> 
<asp:Label ID="lblErrMsg" runat="server" ForeColor="Red" 
    Text=" xxx" ></asp:Label> 
+2

「outerHTML」の代わりに「innerHTML」を使用すると、そのオブジェクトを保持することになりますか? – jfriend00

答えて

0

はあなたがあなたのフラグに応じて、CSSを制御することができ、この方法は

document.getElementById("blah").className = "cssclass"; 

をしたい場合は、CSSスタイルを変更するのdivまたは要素のクラス名を変更してみてください。

3
ErrMsg.outerHTML = 'valid'; 

、あなたは以前のErrMsgを破壊してしまい、新しいコンテンツはIDを持たなくなります(getElementByIdで見つけることができないようになります)。

本当にinnerHTMLが必要ないのですか?

+0

outerからinnerHTMLに変更しても効果はありませんでした。私は、エラーメッセージの静的テキストをいくつか設定し、cssクラスを使用してそれを隠すか、または表示することを選択しました。 (以下のバートの提案による)。迅速な対応に感謝します。 CSSの回避策は現在のところ実行されます...しかし、私はそれが動作するまで元のアプローチでプレイします。 – dan9359

+0

すべてのブラウザがouterHTMLをサポートしているわけではありませんが、有用ではありません。 – RobG

関連する問題