ASP.NET隐藏字段无法使用jQuery设置值

10

我无法使用 jQuery 在 asp .net 中设置隐藏字段的值。

我的隐藏字段声明如下:

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

这就是我设置值的方式:

            alert(ticketID);
            $('#<%=hdnSelectedTicket.ClientID %>').val(ticketID);
            alert($('#<%=hdnSelectedTicket.ClientID %>').val());

两个警报都显示正确的值,但当我在服务器上获取它时,它是空的。


2
那段代码看起来没问题,但是后面的代码呢?也许问题就出在那里了? - Aristos
当您检索值时,您的服务器端代码是什么样子? - Jeff LaFay
我是这样访问它的:string.IsNullOrEmpty(hdnSelectedTicket.Value)。当检查该值时,它是一个空字符串。 - Alecu
3个回答

20

设置 ClientIDMode="Static",然后您可以使用 $('#hdnSelectedTicket').val(ticketID); 来设置 asp 隐藏字段的值

例如

asp:HiddenField ID="hdnSelectedTicket" runat="server" ClientIDMode="Static"

$('#hdnSelectedTicket').val(ticketID);

7
事实证明,我把隐藏字段放在了一个用作jquery对话框模型的div中。当我把隐藏字段从div中移除并将其放在其他地方时,它就起作用了。

谢谢您发布这个。这也是我的问题的答案! - Eric

3

取决于你何时在服务器端读取值,它可能尚未更新到控件上 - 如果你在一个更改事件处理程序中进行操作,并且引发更改事件的控件在隐藏控件之前得到更新,则调用hdnSelectedTicket.Value仍然可以返回旧值。

解决此问题的最简单方法是欺骗并直接从Form集合中获取:

var ticketId = Request.Form[hdnSelectedTicket.UniqueID];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接