Функция javascript, запускаемая onblur, выдает предупреждение, но не изменяет innerHTML элемента - PullRequest
0 голосов
/ 27 марта 2012

Я написал функцию, которая устанавливает innerHTML диапазона с идентификатором «mail_not_valid» в значение «что не похоже на правду», когда пользователь пытается ввести неверный адрес электронной почты. Работает отлично. Другая функция очищает поле ввода и запускается функцией onfocus. Третья функция запускается onblur и сбрасывает поле ввода к исходному значению, когда пользователь ничего не вводил. Теперь вот проблема: если пользователь нажимает на поле (-> очищено), вводит недействительный адрес электронной почты (-> отображается диапазон), а затем просто удаляет свою запись и покидает форму, диапазон все еще там.

Теперь, когда я заменяю document.getElementById ("mail_not_valid"). InnerHTML = ""; с предупреждением предупреждение появляется. Однако изменение innerHTML не работает.

РЕДАКТИРОВАТЬ: я идиот, он не может работать, если пользователь уже что-то написал: if (! (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>

Ответы [ 2 ]

2 голосов
/ 27 марта 2012

У вас есть опечатка.Должно быть так:

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

Обратите внимание на одинарный знак равенства.

Также не копируйте / вставляйте код.Используйте достойный редактор / IDE.Копировать / вставить это зло!:)

0 голосов
/ 27 марта 2012

изменить innerHTML == "" на innerHTML = ""

...