我已经使用 Iframe 在我的 Default.aspx 页面中加载验证码图像。在 Captcha.aspx 文件中,我生成了随机数并将随机数分配给隐藏字段。
验证码.aspx:
<asp:hiddenField runat="server" ID="hdnCaptcha"/>
验证码.aspx.vb:
hdnCaptcha.Value = 随机数
默认.aspx:
<iframe id="ifrm" src="Captcha.aspx"/>
Javascript:
var iframe = document.getElementById('ifrm');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var captcha = innerDoc.getElementById('hdnCaptcha').value;
隐藏字段验证码值始终返回 null。如何从Iframe源页面访问隐藏字段值?
最佳答案
ASP.NET 在生成的 html 中生成 ID,这些 ID 比您在 aspx 标记中看到的要长。所以你可以做的是:
将真实的客户端 ID 插入 JavaScript 中。仅当 js 代码位于 aspx 文件本身而不是单独的 js 文件中时,这才有效:
var captcha = innerDoc.getElementById('<%= hdnCaptcha.ClientID %>').value;
由于您正在处理 iframe,这可能不是您的选择。然后引用
将隐藏字段的ID模式设置为静态。这将强制 ASP.NET 按原样输出 id,不添加任何内容。请注意,在这种情况下,您的工作是确保 iframe 页面上只有一个具有此 ID 的控件:
<asp:HiddenField runat="server" ID="hdnCaptcha" ClientIDMode="Static" />
关于javascript - 使用javascript访问iframe内的asp.net隐藏字段控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33109319/