[ad_1]
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:
document.querySelector("*[id$='_txtDDAExpiryDate']")
[ad_2]
コメント