Pregunta

Parece que todos están haciendo esto (en mensajes de código, etc.) ... pero yo no sabía cómo': (

siempre que intente manipular un elemento asp usando javascript me sale un "elemento es nulo" o "documento no está definido", etc ..... error

Javascript funciona bien por lo general, ... pero sólo cuando agrego el atributo runat = "server" no parece el elemento invisible para mi javascript.

alguna sugerencia serían apreciados

Gracias, Andrew

¿Fue útil?

Solución

Lo que probablemente suceda es que su elemento / control está dentro de uno o más controles ASP.NET que actúan como contenedores de nomenclatura (página Master, ITemplate, asistente, etc.), y que está causando su ID para cambiar.

Puede utilizar "ver fuente" en su navegador para confirmar que es lo que está pasando en el HTML representado.

Si su JavaScript está en la página ASPX, la forma más fácil de solucionar temporalmente que es utilizar el elemento de propiedad ClientID . Por ejemplo, si has tenido una llamada de control TextBox1 que quería hacer referencia a través de JS:

var textbox = document.getElementById('<%= TextBox1.ClientID %>');

Otros consejos

Hacer un elemento runat="server" cambia el ID de cliente de ese elemento en base a lo ASP.NET contenedores de nombres que está dentro de. Así que si usted está utilizando document.getElementById para manipular el elemento, tendrá que pasar el nuevo ID generado por el .NET. Mira en el propiedad ClientId para conseguir que la generada ID ... se puede utilizar en línea en su Javascript, así:

var element = document.getElementById('<%=myControl.ClientID%>');

Si usted tiene un cuadro de texto:

<asp:TextBox id="txtText" runat="server" />

Puede utilizar:

var textBox=document.getElementById('<%=txtText.ClientID %>');

Cualquier WebControl expone la misma propiedad ClientID.

Todos sin embargo la pregunta ha sido contestada, pensó que simplemente iba a publicar algunos más información ...

Rick Strahl proporciona toda una obra intresting en torno a este problema.

http://www.west-wind.com/WebLog/posts /252178.aspx

Afortunadamente, cuando ASP .NET 4.0 llega, le permitirá especificar exacly cuáles serán los ID de cliente!

http://www.codeproject.com/KB/aspnet/ASP_NET4_0ClientIDFeature.aspx

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top