【问题标题】:How to get element by id in ASP.NET?如何在 ASP.NET 中通过 id 获取元素?
【发布时间】:2015-08-17 20:17:36
【问题描述】:

我尝试了所有可能的解决方案来通过 id 获取元素的值,但没有奏效。我正在使用 ASP.NET,我搜索了控件并且我知道服务器更改了 TextBox1 的 id,所以我们使用 clientID。但是当我写console.log(data1) 时,我什么也得不到或没有空间。

var data1 = document.getElementById('MainContent_TextBox1').textContent;
var data1 = document.getElementById("<%=MainContent_TextBox1.ClientID %>").value; 

这是 ASPX 代码:

<asp:TextBox ID="TextBox1" runat="server" ></asp:TextBox>

这是 JS 代码:

 var data1 = document.getElementById('MainContent_TextBox1').textContent;

在控制台中,我收到此错误:

Uncaught SyntaxError: Unexpected end of input and its reference in the master file!

console.log(data1); 在控制台中显示为空白。

如果有人知道另一种方法或为什么它不起作用,请告诉我。

【问题讨论】:

  • 页面加载后你的 JavaScript 是否在运行?
  • 不,它实际上是同时运行的..onload
  • @tymeJV 如何确保 JavaScript 在页面加载后运行?!
  • 将 JavaScript 放在页面底部。
  • 它是一个外部文件,但谢谢你我尝试了另一种方法,现在它工作得很好:)

标签: javascript asp.net


【解决方案1】:

1.您可能遇到与本题相同的问题:

Javascript Get Element by Id and set the value

如果在您的 javascript 运行之前页面尚未加载该元素,getElementById 将返回 null。

“所以,确保你的[元素]确实存在于页面中,然后调用[getElementById],你可以使用window.onload或者$(document).ready函数。”

2.错误: Uncaught SyntaxError: Unexpected end of input and its reference in the master file 可能是由于缺少小括号或其他格式错误引起的。仔细检查所有内容是否正确。

【讨论】:

  • 如果您能提供 JS 和 Html 文件可能会有所帮助
  • 您确实应该提供整个代码块,以便我们可以检查代码进度/语法。根据您的信息,有太多可能的错误。
【解决方案2】:

服务器控件的 ID 被更改并附加内容占位符 ID,因此一个非常简单的解决方案是在服务器控件上设置属性 ClientIDMode="static"。通过设置此控件 ID 将保持不变且不会更改,因此您将在 javascript 中通过 getElementById 找到它。

<asp:TextBox ID="TextBox1" runat="server" ClientIDMode="static" ></asp:TextBox>

【讨论】:

  • 天啊!!它起作用了:D,非常感谢您的帮助:) @mairajAhmad
【解决方案3】:

您可以尝试像这样在内容页面中获取母版页控件值。 document.getElementById('')。如果是同一页,那么您应该可以直接使用 document.getElementById("")。

【讨论】:

  • 我不明白你所说的,请你详细说明一下。我为什么要在这里使用主人!
  • 您需要使用 Master 找到驻留在母版页中的控件。
猜你喜欢
  • 1970-01-01
  • 2016-06-19
  • 2019-05-20
  • 1970-01-01
  • 2015-09-02
  • 1970-01-01
  • 2015-12-05
  • 2020-12-24
  • 1970-01-01
相关资源
最近更新 更多