在我的代码中,我有一个简单的字段,如下所示
<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>
不确定,我在这里做错了什么。请让我知道我忽略了什么愚蠢的错误。
编辑:
我想我会发疯的。我不确定,我正在做什么。无论如何,这就是我通常做的事情。 Accessing hidden field value in javascript
简单的东西,对。但显然我的代码背后根本找不到该死的场。它只是一直说,&#34; lblDocumentPath在当前上下文中不存在。
我花了3个小时,试图将一个隐藏的字段传递给后面的代码。 :(
答案 0 :(得分:1)
呈现服务器端字段时,其客户端ID会更改。使用以下代码访问javascript中的字段,但如果您的javascript代码位于相同的.aspx或.asmx文件中,它将起作用 -
document.getElementById("<%=lblDocumentPath.ClientID %>");
答案 1 :(得分:0)
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" />
答案 2 :(得分:0)
'visible'不是有效的html属性。如果要隐藏元素,请将style属性设置为“display:none;”
<input ID="lblDocumentPath" Class="DefaultButtons" ReadOnly="true" style="display: none"></input>
什么是runat='server'
?您是否尝试将asp.net服务器端控件的属性与html控件混合使用?它不起作用。