[ad_1]
如何通过内容页面中的 JS 文件中的 JavaScript 获取 asp.net 控件的客户端 id 值,并且该 JS 文件是从同一页面引用的。
我正在使用 .net 框架 3.5。 我正在获取客户端 id 值,如下所示
document.getElementById(‘<%=txtDDAExpiryDate.ClientID%>‘).value;。 我遇到以下异常
未捕获的类型错误:无法读取 null 的属性(读取“值”)
我尝试过的:
代码如下
document.getElementById('<%=txtDDAExpiryDate.ClientID%>').value;
解决方案1
始终从阅读文档开始: 文档:getElementById() 方法 – Web API | MDN[^] – 很明显它返回一个 null
当具有该 ID 的元素不存在时:
引用:描述与指定 ID 匹配的 DOM 元素对象的 Element 对象,如果在文档中未找到匹配元素,则返回 null。
所以现在你需要知道——到底是什么—— txtDDAExpiryDate.ClientID
从服务器返回,然后尝试手动将其与您的 HTML 进行匹配。
这会告诉您问题出在哪里:服务器端或客户端。
当你知道这一点时,你应该能够解决它。
使用调试器(或者只是将其写在页面上)来查找。
抱歉,我们无法为您做到这一点 – 您是时候学习一项新的(并且非常非常有用)技能了:调试!
解决方案2
由于 HTML 文档中的 ID 应该是唯一的,因此 WebForms 通过将任何服务器端控件的 ID 与其层次结构中每个“命名容器”的 ID 相结合来“破坏”任何服务器端控件的 ID。
如果您可以迁移到 .NET 4.x,那么您也许可以使用 ClientIDMode 属性[^] 覆盖该行为。
否则,您需要找到另一种方法来识别您的元素。 例如:
document.querySelector("*[id$='_txtDDAExpiryDate']")
[ad_2]
コメント