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