似乎每个人都在这样做(在代码、帖子等)...but,我不知道是怎么做的。:(
每当我尝试使用JavaScript操作asp元素时,我得到一个"element is null"或"document is undefined"等错误.....
JavaScript通常工作得很好,...but只有当我添加runat="server"属性时,元素对我的JavaScript看起来是不可见的。
如有任何建议,我们将不胜感激。
谢谢,安德鲁
发布于 2009-03-23 20:24:20
可能发生的情况是,您的元素/控件位于一个或多个用作命名容器(母版页、ITemplate、向导等)的ASP.NET控件中,这会导致其ID发生更改。
您可以在浏览器中使用"view source“来确认在呈现的HTML中发生了什么。
如果你的JavaScript在ASPX页面中,暂时解决这个问题的最简单的方法就是use the element's ClientID property。例如,如果您希望通过JS引用一个名为TextBox1的控件:
var textbox = document.getElementById('<%= TextBox1.ClientID %>');发布于 2009-03-23 20:24:56
将元素设为runat="server"会根据元素所在的ASP.NET命名容器更改该元素的客户端ID。因此,如果你使用document.getElementById来操作元素,你需要将.NET生成的新ID传递给它。查看ClientId属性,得到生成的ID...you可以像这样在你的Javascript中内联使用它:
var element = document.getElementById('<%=myControl.ClientID%>');发布于 2009-03-23 20:23:35
如果你有一个文本框:
<asp:TextBox id="txtText" runat="server" />YOu可以使用:
var textBox=document.getElementById('<%=txtText.ClientID %>');任何WebControl都公开相同的ClientID属性。
https://stackoverflow.com/questions/675060
复制相似问题