C# 当visible更改为false时,为什么JQuery无法获取Textarea值?

C# 当visible更改为false时,为什么JQuery无法获取Textarea值?,c#,javascript,jquery,asp.net,C#,Javascript,Jquery,Asp.net,我认为将textarea更改为“不可见”将从用户视图中消失,但仍然会隐藏存储的信息?对于我的结果,只要textarea保持可见,Jquery就能够获取信息。C#服务器端代码是将textarea visible更改为false的代码 在我单击第一个按钮(BtnIPAM)后,C#服务器端从textarea获取信息并执行该操作,然后将textarea visible更改为false 然后我单击第二个按钮(BtnISM)调用JQuery以获得相同的textarea,但它什么也得不到。 如果我在C#服务器

我认为将textarea更改为“不可见”将从用户视图中消失,但仍然会隐藏存储的信息?对于我的结果,只要textarea保持可见,Jquery就能够获取信息。C#服务器端代码是将textarea visible更改为false的代码

在我单击第一个按钮(BtnIPAM)后,C#服务器端从textarea获取信息并执行该操作,然后将textarea visible更改为false

然后我单击第二个按钮(BtnISM)调用JQuery以获得相同的textarea,但它什么也得不到。 如果我在C#服务器端进行注释,使textarea可见,JQuery将能够从textarea获取信息

有人知道为什么会发生这种情况,以及解决的办法吗

aspx代码包括textarea、第一个按钮(BtnIPAM)和第二个按钮(BtnISM):

在javascript CreateIsm()函数中,我使用
notes=$('#txt').val()
获取文本区域信息。

可能正在页面上为控件创建一个备用ID,因此搜索
'#txt'
将无法获取实际控件。或者,您可以将
clientdmode
设置为
clientdmode.Static
(只需为控件上的该属性指定Static),这样它就不会更改您的ID,但您必须确保页面上的所有控件都具有唯一的ID

像这样:

<asp:TextBox ID="txt" runat="server" ClientIDMode="Static">


此外,在控件上设置
Visible='false'
甚至不会写入标记以在页面上显示该控件,因此该控件不存在。

在asp.net中,当您将Visible设置为false时,控件不会在页面上呈现,这就是您无法在页面上访问该控件的原因。代码
txt.Visible=false导致文本区域HTML完全不呈现。您可以使用
txt.Attributes[“style”]=“display:none”

在ASP.NET服务器端代码中,设置为
false
实际上不会使控件不可见,而是不会在页面上呈现它

如果要呈现隐藏控件,可以编写:

txt.Style.Add(HtmlTextWriterStyle.Display, "none");
或者简单地说:

txt.Style.Add("display", "none");
txt.Style.Add(HtmlTextWriterStyle.Display, "none");
txt.Style.Add("display", "none");