10

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

我的隐藏字段声明如下:

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

这就是我设置值的方式:

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

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

4

3 回答 3

20

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

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

$('#hdnSelectedTicket').val(ticketID);
于 2014-01-03T12:02:27.877 回答
7

事实证明,我将隐藏字段放在用作 jquery 对话框模型的 div 中。当我从 div 中删除隐藏字段并将其放置在其他地方时,它可以工作。

于 2013-06-26T12:30:11.123 回答
3

根据您在服务器端读取值的时间,它可能尚未在控件上更新 - 本质上,如果您在更改事件处理程序中执行此操作,并且引发更改事件的控件在隐藏控件之前更新,那么调用 hdnSelectedTicket.Value 仍然可以返回旧值。

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

var ticketId = Request.Form[hdnSelectedTicket.UniqueID];
于 2013-06-26T12:24:24.003 回答