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>
それだけでタイプミスですが、あなたの例では、あなたが比較演算子( '==')ではなく代入演算子を使用している場合はわからない
innerHTML = ""
に( '=')。 – scottmHTMLには実際には 'mail_not_valid'というIDの要素が含まれていますか?コンソールにエラーがありますか? –
あなたはalertやconsole.log(document.getElementById( "mail_not_valid")。innerHTMLを使って比較していることを確認していますか?)その場合、空白/改行などがあると、 – Brian