getElementById успешно завершается один раз, затем возвращает ноль - PullRequest
0 голосов
/ 21 февраля 2012

Я новичок в JavaScript, и это сводит меня с ума.Я пытаюсь установить текст и цвет метки ("lblerrmsg") в зависимости от значения флага ("IsValid").Я написал функцию в файле .js и прикрепил ее к веб-сайту, который я создал с помощью VS.

Функция, в частности getElementById ('lblErrMsg') , правильно работает в первыйвремя вызывается, но при последующих вызовах возвращает ноль.(Не знаю, относится ли это к делу, но между вызовами функции нет сообщений.)

Ниже приводится соответствующая часть функции:

// 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 ]

3 голосов
/ 21 февраля 2012
ErrMsg.outerHTML = 'valid';

Если вы сделаете это, вы уничтожили предыдущее сообщение ErrMsg, и у нового контента больше не будет идентификатора (поэтому он не может быть найден getElementById).

Вы уверены, что не делаетене хочешь innerHTML?

0 голосов
/ 21 февраля 2012

попробуйте изменить имя класса div или элемента, чтобы изменить стиль css, если хотите

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

Таким образом, вы можете контролировать CSS в зависимости от вашего флага.

...