我是javascript的新手,这让我疯狂。 我正在尝试根据标志的值(“IsValid”)设置标签的文本和颜色(“lblerrmsg”)。我在.js文件中编写了一个函数,并将其附加到我用VS构建的网站上。
函数 - 特别是 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>
答案 0 :(得分:3)
ErrMsg.outerHTML = 'valid';
如果你这样做,你已经破坏了之前的ErrMsg,新内容将不再具有id(因此getElementById无法找到它)。
你确定你不想要innerHTML吗?
答案 1 :(得分:0)
尝试更改div或元素的类名,以便在需要时更改css样式
document.getElementById("blah").className = "cssclass";
这样你可以根据你的旗帜控制css。