为什么我可以在javascript中访问asp:TextBox,但不能访问asp:Label
Why can I access asp:TextBox in javascript, but not asp:Label?
这是我在说什么的简单演示
头标签中的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
来获取对象。
使用innerHTML
时注意潜在的 XSS 问题。
ASP:Label
不呈现表单元素。它呈现span
或label
。您必须使用 innerHTML 访问该值。请确保使用 ClientID,因为如果标签控件不直接位于页面中或使用母版页,则 ASP.NET 运行时可能会呈现不同的 ID。
var lbl = document.getElementById("<%= lblStatus.ClientID %>");
lbl.innerHTML = "hello world";
相关文章:
- 访问子窗体的asp代码隐藏中的javascript window.myvariable
- 如何通过AngularJS$http从ASP.Net Web API 2获取访问令牌
- 访问javascript ASP.net中的会话
- 使用 jquery 访问 Asp.net 控件(所有选项)
- 通过javascript访问中继器中的asp元素
- 从 JavaScript 访问 ASP 日历
- 如何在没有代码隐藏访问权限的情况下将自定义 HTML 属性添加到 ASP.NET 标签
- 如何使用 asp.net 访问高图表中内置按钮的功能
- 如何在 3 次登录尝试后重新加载页面并出现 401 未经授权的访问错误?在 asp.net
- 从 JavaScript 中的表单视图访问复选框 asp.net
- ASP.NET MVC - 在客户端 JS 中访问 C# 字符串
- 在 c# 中以编程方式访问 asp.net Label 的值 innerHtml 值
- 需要在加载时访问 java 脚本中的 asp.net 服务器控件
- 如何使用 javascript 函数通过 ID 访问 asp 控件
- 在 jquery 中访问在页面中序列化的变量时出现 Json 解析错误 asp.net .cs
- AJAX 可访问的长时间运行的服务任务阻止在启用 ASP.NET 兼容性/会话的环境中的后续 AJAX 服务请求
- 使用 jQuery 访问 asp.net 字典
- 如何在 asp.net 中限制用户在单台计算机上访问网站
- “getElementById 返回 undefined” 在 JavaScript 中访问 asp:HiddenFie
- 如何在 asp.net mvc 中访问会话变量