![](/img/trans.png)
[英]How do I change visibility of an asp label with javascript with an onchange event of an asp textbox
[英]Why can I access asp:TextBox in javascript, but not asp:Label?
这是我在说什么的简单演示
head标签中的js:
function changeTxt(frm){
var lblo = frm.txt1;
lblo.value = "hey guy";
var lbl = frm.lblStatus;
lbl.innerHTML = "hello world";
}
aspx/html 标记:
<asp:Label ID="lblStatus" runat="server"></asp:Label>
<asp:TextBox ID="txt1" runat="server"></asp:TextBox>
<button onclick="changeTxt(this.form);">go</button>
js 找到txt1
( input
html 元素)并更改值。 但为什么找不到lblStatus
( span
html 元素)? 它出现为undefined
。 它们都是相同的形式。
编辑:问题似乎是在 js 中访问span
节点。 我猜你不能像我一样通过表格 object 访问它们。
asp:Label
呈现为跨度或 label,因此value
不是更改文本的正确方法。 你需要使用像innerHTML
这样的东西:
function changeTxt(frm){
var lblo = document.getElementById('<%: txt1.ClientID %>');
lblo.value = "hey guy";
var lbl = document.getElementById('<%: lblStatus.ClientID %>');
lbl.innerHTML = "hello world";
}
您还应该使用getElementById
来获取 object。
使用innerHTML
时注意潜在的XSS问题。
ASP:Label
不呈现表单元素。 它呈现一个span
或label
。 您必须使用 innerHTML 访问该值。 请确保使用 ClientID,因为如果 label 控件不直接位于页面中或使用了母版页,则 ASP.NET 运行时可能会呈现不同的 ID。
var lbl = document.getElementById("<%= lblStatus.ClientID %>");
lbl.innerHTML = "hello world";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.