javascript - 为什么我可以访问asp :TextBox in javascript,但不能访问asp :Label?

标签 javascript asp.net

下面是我在说什么的简单演示

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/

相关文章:

javascript - 如何使用 javascript fetch api 和 express multer 上传图片

javascript - 将日期字符串从 C# Controller 传递到 Javascript 函数正在改变字符串

asp.net - 如何忽略对模型属性的验证?

asp.net - 将 asp.net 网站迁移到 linux?

asp.net - 使用带有 Selenium 的母版页测试 ASP.NET 站点

javascript - Protractor 错误 "WebDriverError: Invalid timeout type specified: ms"

javascript - 异步流畅的 javascript (node) 接口(interface)(使用 deferreds)

javascript - 在 Google Analytics 事件跟踪代码中使用 Javascript 来自动化类别命名

asp.net - 由 JavaScript 修改的控件的可见性属性在回发后被忽略

asp.net - 如何处理ASP.NET的HyperLink.NavigateUrl中的特殊字符?