【发布时间】:2018-05-22 09:49:58
【问题描述】:
所以我在尝试从我的 JavaScript 访问 UserControl 中的 HiddenField 值时遇到了困难。
在我的用户控件中,我有:
<asp:HiddenField ID="HiddenField1" runat="server" />
此用户控件在多个地方使用,有时在同一页面上使用多次,因此 ClientIDMode = Static 不是一个选项,它必须是 runat = server 因为我还需要在后面的代码中访问它。
在我的 JavaScript 中,我尝试了以下方法:
document.getElementById('<%= HiddenField1.ClientID %>');
document.getElementById('HiddenField1');
$find("<%= HiddenField1.ClientID %>");
所有这些都返回 null。我看到了一些“解决方案”的建议
document.getElementById('ctl00_ContentPlaceHolder1_HiddenField1')
但这显然会给可重用性带来问题。
编辑: 这样生成的html是:
<input type="hidden" name="ctl00$ctl00$MainContent$MainContent$$ctl00$SomeUserControl$someOtherUserControl1$HiddenField1" id="MainContent_MainContent_SomeRepeater_SomeUserControl_0_someOtherUserControl1_0_HiddenField1_0" value="353">
值是通过其他函数在后面的代码中设置的。
EDIT2:概括我的代码示例
【问题讨论】:
-
右键点击网页的
view source。检查您是否能够看到隐藏字段输入项。然后现在从那里复制id并尝试getElementById。 -
查看源码时,
document.getElementById('<%= hfInsuranceCompanyID.ClientID %>');的值是多少?是否没有正确提供 ClientID? -
能否将您的控件生成的html粘贴到问题中,我们有很多可以使用的jquery选择器。
-
我已经编辑了 Gagan 的原帖
-
@Matt:
document.getElementById('<%= hfInsuranceCompanyID.ClientID %>');没有给出期望输出怎么办?
标签: javascript asp.net user-controls hiddenfield