使用jQuery获取asp:HiddenField的值

我有两页。 从第一页开始,我打开一个带有查询字符串的模态,该查询字符串包含客户端名称的值。 然后我用它在打开的模态上设置一个隐藏字段。

我需要在新模态上使用TextBox来显示从第一个屏幕发送的值。

我尝试使用以下方法获取值:

var hv = $('hidClientField').val();` 

但这似乎不起作用。

这是我隐藏的领域:

 ` 

我在Page_Load后面的代码中设置它,如下所示:

 hidClientName.Value = Request.QueryString["Client_Name"] ?? "";` 

任何想法将不胜感激。

请尝试以下任何一种方法

  1. 如果ASP.Net控件和javascript都在同一页面上,那么使用

     var hv = $("#"+ '<%= hidClientField.ClientID %>').val(); 
  2. 如果你想从一些JS文件访问控件,那么

     // 'id$' will cause jQuery to search control whose ID ends with 'hidClientField' var hv = $('input[id$=hidClientField]').val(); 
  3. 您可以使用类名选择器来实现相同的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();