使用jQuery获取asp:HiddenField的值
我有两页。 从第一页开始,我打开一个带有查询字符串的模态,该查询字符串包含客户端名称的值。 然后我用它在打开的模态上设置一个隐藏字段。
我需要在新模态上使用TextBox来显示从第一个屏幕发送的值。
我尝试使用以下方法获取值:
var hv = $('hidClientField').val();`
但这似乎不起作用。
这是我隐藏的领域:
`
我在Page_Load后面的代码中设置它,如下所示:
hidClientName.Value = Request.QueryString["Client_Name"] ?? "";`
任何想法将不胜感激。
请尝试以下任何一种方法
-
如果ASP.Net控件和javascript都在同一页面上,那么使用
var hv = $("#"+ '<%= hidClientField.ClientID %>').val();
-
如果你想从一些JS文件访问控件,那么
// 'id$' will cause jQuery to search control whose ID ends with 'hidClientField' var hv = $('input[id$=hidClientField]').val();
-
您可以使用类名选择器来实现相同的function。 看看这个类似的问题。
在asp.net中,控件id被破坏了。 因此,您的代码无效。
希望这对你有用。
您忘记了选择器中的#
以按ID选择:
var hv = $('#hidClientField').val();
虽然asp.net根据命名容器生成ID,但您最终可能会得到像ctl1$hidClientField
这样的ID。 然后,您可以使用“属性结束”选择器:
var hv = $('input[id$=hidClientField]').val();
查看有关jQuery选择器的文档
使用ID选择器。
var hv = $('#hidClientName').val();
要么
var hv = $('#<%=hidClientName.ClientID%>').val();
因为jQuery对asp:HiddenField
一无所知。 它在HTML结构中查找 所以
ID= HiddenFieldServerDateTime
没有输入。 有几种方法可以解决这个问题:
-
使用css选择器:使用以下选择器:
var serverDateTime = $(".SomeStyle").val();
CssClass
不是HiddenField
类上的可用类(并且它没有Attributes
集合,因此您无法手动添加它)。 -
使用
ClientID
属性:var serverDateTime = $("#<%= HiddenFieldServerDateTime.ClientID %>").val();
-
将隐藏字段包裹在您可以选择的内容中:
var serverDateTime = $('.date-time-wrap input[type=hidden]').val();
如果您使用的是Asp.net控件,服务器将会破坏控件ID。 它将一堆无关的控制树层次结构信息添加到id中。 您需要引用正在渲染的实际ID,这可以通过控件上的ClientID属性(hfUser.ClientID)获得,或者以不同的,更迂回的方式访问您的控件,比如找到控件父级,然后搜索它孩子找到你的控制。
如果您不必使用asp.net HiddenField控件,请尝试使用常规的旧html输入。
你可以这样做
var hval = $('#<%= hdMarkupPercentage.ClientID%>').val();
在代码中包含ClientIDMode =“Static”。
var obj = $('#hidClientName').val();
要么
var obj = $('#<%=hidClientName.ClientID%>').val();
请试试这段代码。
var hv = $("#<%= hidClientField.ClientID %>").val();