¿Cómo obtener el valor de identificación del cliente de un control ASP.NET mediante javascript en un archivo JS?

programación


Cómo obtener el valor de identificación del cliente de un control asp.net a través de JavaScript en un archivo JS en la página de contenido y se hace referencia al archivo JS desde la misma página.
Estoy trabajando en .net framework 3.5. Estoy obteniendo el valor de identificación del cliente como se muestra a continuación
document.getElementById(‘<%=txtDDAExpiryDate.ClientID%>‘).value;. Estoy por debajo de la excepción
TypeError no detectado: no se pueden leer las propiedades de nulo (leyendo ‘valor’)

Lo que he probado:

Codifique como se muestra a continuación

document.getElementById('<%=txtDDAExpiryDate.ClientID%>').value;

Solución 1

Comience siempre leyendo la documentación: Documento: método getElementById() – API web | MDN[^] – está bastante claro que devuelve un null cuando el elemento con ese ID no existe:

Cita:

Un objeto Elemento que describe el objeto elemento DOM que coincide con el ID especificado, o nulo si no se encontró ningún elemento coincidente en el documento.

Así que ahora necesitas saber qué – exactamente – txtDDAExpiryDate.ClientID está regresando del servidor, luego intente compararlo manualmente con su HTML.
Eso le dirá dónde está el problema: en el lado del servidor o en el lado del cliente.
Y cuando sepas eso, deberías poder resolverlo.

Utilice el depurador (o simplemente escríbalo en la página) para averiguarlo.

Lo sentimos, pero no podemos hacer eso por usted. Es hora de que aprenda una habilidad nueva (y muy, muy útil): ¡depurar!

Solución 2

Debido a que se supone que los ID en un documento HTML son únicos, WebForms “destroza” el ID de cualquier control del lado del servidor combinándolo con el ID de cada “contenedor de nombres” en su jerarquía.

Si puede pasar a .NET 4.x, entonces podrá utilizar el Propiedad ClientIDMode[^] para anular ese comportamiento.

De lo contrario, necesitarás encontrar otra forma de identificar tu elemento. Por ejemplo:

javascript
document.querySelector("*[id$='_txtDDAExpiryDate']")

Documento: método querySelector() – API web | MDN[^]

コメント

タイトルとURLをコピーしました