我尝试了所有可能的解决方案来获取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:输入的意外结束及其在主文件中的引用!
console.log(data1);
在控制台中显示为空位。
如果有人知道另一种方式或为什么它不起作用,请告诉我。
答案 0 :(得分:4)
服务器控件的ID被更改并附加了内容占位符ID,因此一个非常简单的解决方案是在服务器控件上设置属性ClientIDMode="static"
。通过设置此控件ID将保持不变,并且不会更改,因此您可以通过getElementById
在javascript中找到它。
<asp:TextBox ID="TextBox1" runat="server" ClientIDMode="static" ></asp:TextBox>
答案 1 :(得分:0)
1.您可能遇到与此问题相同的问题:
Javascript Get Element by Id and set the value
如果页面在javascript运行之前尚未加载该元素,则getElementById将返回null。
&#34;所以,确保你的[元素]确实存在于页面中,然后调用[getElementById],你可以使用window.onload或$(document).ready function。&#34;
2.错误:
Uncaught SyntaxError: Unexpected end of input and its reference in the master file
可能是由于缺少braket或其他格式错误引起的。仔细检查一切都写得正确。
答案 2 :(得分:0)
您可以尝试这样在内容页面中获取母版页控制值。 document.getElementById(&#39;&lt;%= Master.FindControl(&#34; Textbox1&#34;)。ClientID%&gt;&#39;)。如果它是相同的页面,那么您应该能够直接使用document.getElementById(&#34;&lt;%= TextBox1.ClientID%&gt;&#34;)。