2012-03-26 2 views
0

idが "mail_not_valid"のスパンのinnerHTMLを "それは正しいように見えません"に設定する関数を記述しました。ユーザーが無効な電子メールアドレスを送信しようとしました。正常に動作します。別の機能は、入力フィールドをクリアし、onfocusによってトリガされます。 3番目の関数はonblurによってトリガされ、ユーザーが何も入力しなかったときに入力フィールドを元の値にリセットします。ユーザーがフィールド( - >クリア)をクリックし、無効な電子メール( - > spanが表示されます)を入力してからエントリを削除してフォームを終了すると、スパンはまだそこにあります。onblurによってトリガされたjavascript関数は警告を出しますが、要素のinnerHTMLを変更しません。

ここで、document.getElementById( "mail_not_valid")を置き換えます。innerHTML = "";アラートを表示すると、アラートが表示されます。しかし、innerHTMLの変更は機能しません。

EDIT:(!(feld.value))であれば

<input onblur="OnBlurCondition (this, 'subscribe to the e-mail newsletter')"> 

<script language="javascript"> 
function OnBlurCondition (feld, inhalt) { 
     if (!(feld.value)){ 
       feld.value = inhalt; 
       if (document.getElementById("mail_not_valid").innerHTML == "that doesn't seem right."){ 
        document.getElementById("mail_not_valid").innerHTML = ""; 
       } 
     } 
} 
</script> 
+1

それだけでタイプミスですが、あなたの例では、あなたが比較演算子( '==')ではなく代入演算子を使用している場合はわからないinnerHTML = ""に( '=')。 – scottm

+0

HTMLには実際には 'mail_not_valid'というIDの要素が含まれていますか?コンソールにエラーがありますか? –

+0

あなたはalertやconsole.log(document.getElementById( "mail_not_valid")。innerHTMLを使って比較していることを確認していますか?)その場合、空白/改行などがあると、 – Brian

答えて

2

あなたがタイプミスを持っている:私は馬鹿だ、それはユーザが既に何かを書いた場合は動作することはできません。

if (document.getElementById("mail_not_valid").innerHTML == "that doesn't seem right."){ 
    document.getElementById("mail_not_valid").innerHTML = ""; 
} 

単一の等号に注意してください。

また、コードをコピー/ペーストしないでください。適切なエディタ/ IDEを使用してください。コピー/ペーストは悪です! :)

+0

私はすでに+1が、私は私がコピー/ペーストのコメントのためにできるなら別のものを与える! –

+0

@ TravisJ:thanks :) –