无法从Javascript访问隐藏的HTML元素

Unable to access hidden HTML elements from Javascript

本文关键字:HTML 元素 隐藏 访问 Javascript      更新时间:2024-07-15

在我的代码中,我有一个简单的字段,如下所示

<input ID="lblDocumentPath" Class="DefaultButtons" runat="server" ReadOnly="true" Visible="false"></input>

当我将visible属性设置为true时,元素被正确加载,JS能够读取它

document.getElementById(filePathLabel).value = arrRowsArray[1];

但是,由于属性设置为false,JS找不到元素。如果我在IE中打开DOM资源管理器,我看到的只是一个空的输入字段。

</input><//input>

不确定,我在这里做错了什么。请让我知道我忽略了什么愚蠢的错误。

编辑:

我想我快要疯了。我不确定,我在做什么了。无论如何,这是我通常做的。访问javascript 中的隐藏字段值

简单的东西,对吧。但显然我的代码根本找不到这个该死的字段。它只是不断地说,"lblDocumentPath在当前上下文中不存在

我花了3个小时,试图将一个隐藏字段传递给后面的代码(

当呈现服务器端字段时,其客户端id会发生更改。使用以下代码访问javascript中的字段,但如果您的javascript代码位于同一.aspx或.asmx文件-中,则该字段将起作用

document.getElementById("<%=lblDocumentPath.ClientID %>");

'visible'不是有效的html属性。如果要隐藏元素,请将样式属性设置为"display:none;"

<input ID="lblDocumentPath" Class="DefaultButtons" ReadOnly="true" style="display: none"></input>

什么是runat='server'?您是否试图将asp.net服务器端控件的属性与html控件混合?它不会起作用。

JS解决方案:

使用隐藏输入字段的正确方法如下:

<input id="lblDocumentPath" type="hidden"></input>

通过遵循此格式,您仍然可以访问以下隐藏字段:

document.getElementById("lblDocumentPath");

查看更多:w3schools.com

jsfiddle:http://jsfiddle.net/j1w26new/

ASP.NET/jQuery解决方案:

如果通过ASP.NET级别将字段声明为隐藏,则它将显示为注释掉的块。要找到它,请使用以下方法:

var hiddenField = $("<%= lblDocumentPath.ClientID %>");

这将找到以下ASP字段:

<asp:HiddenField ID="lblDocumentPath" runat="server" />