下面是我在说什么的简单演示
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
节点。我想您不能像我一样通过表单对象访问它们。
最佳答案
asp: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
来获取对象。
注意潜力XSS使用 innerHTML
时的问题。
关于javascript - 为什么我可以访问asp :TextBox in javascript,但不能访问asp :Label?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10094782/