Comment obtenir la valeur de l’identifiant client d’un contrôle ASP.NET via javascript dans un fichier JS ?

la programmation


Comment obtenir la valeur de l’identifiant client d’un contrôle asp.net via JavaScript dans le fichier JS de la page de contenu et le fichier JS est référencé à partir de la même page.
Je travaille dans le framework .net 3.5. Je récupère la valeur de l’identifiant client comme ci-dessous
document.getElementById(‘<%=txtDDAExpiryDate.ClientID%>‘).value;. Je suis en dessous de l’exception
Uncaught TypeError : impossible de lire les propriétés de null (lecture de « valeur »)

Ce que j’ai essayé :

Coder comme ci-dessous

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

Solution 1

Commencez toujours par lire la documentation : Document : méthode getElementById() – API Web | MDN[^] – il est assez clair que cela renvoie un null lorsque l’élément avec cet ID n’existe pas :

Citation:

Un objet Element décrivant l’objet élément DOM correspondant à l’ID spécifié, ou null si aucun élément correspondant n’a été trouvé dans le document.

Alors maintenant, vous devez savoir quoi – exactement – txtDDAExpiryDate.ClientID revient du serveur, puis essayez de le faire correspondre manuellement à votre code HTML.
Cela vous dira où se situe le problème : côté serveur ou côté client.
Et quand vous le savez, vous devriez pouvoir le résoudre.

Utilisez le débogueur (ou écrivez-le simplement sur la page) pour le savoir.

Désolé, mais nous ne pouvons pas faire cela à votre place. Il est temps pour vous d’apprendre une nouvelle (et très, très utile) compétence : le débogage !

Solution 2

Étant donné que les identifiants d’un document HTML sont censés être uniques, WebForms « modifie » l’identifiant de tout contrôle côté serveur en le combinant avec l’identifiant de chaque « conteneur de dénomination » de sa hiérarchie.

Si vous pouvez passer à .NET 4.x, vous pourrez peut-être utiliser le Propriété ClientIDMode[^] pour remplacer ce comportement.

Sinon, vous devrez trouver un autre moyen d’identifier votre élément. Par exemple:

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

Document : méthode querySelector() – API Web | MDN[^]

コメント

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