使用 jQuery 获取 asp:HiddenField 的值
我有两页。从第一页开始,我打开一个带有查询字符串的模式,该查询字符串保存客户端名称的值。然后我用它在打开的模式上设置隐藏字段。
我需要新模式上的文本框来显示从第一个屏幕发送的值。
我尝试使用以下方法获取值:
var hv = $('hidClientField').val();`
但这似乎不起作用。
这是我的隐藏字段:
<asp:HiddenField ID="hidClientName" runat="server" />`
我将其设置在 Page_Load 后面的代码中,如下所示:
hidClientName.Value = Request.QueryString["Client_Name"] ?? "";`
任何想法将不胜感激。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
尝试以下任意操作
如果 ASP.Net 控件和 javascript 都在同一页面上,则使用
如果您想从某个 JS 文件访问该控件,则
你可以使用类名选择器来实现同样的目的。查看这个类似的问题。
在 asp.net 中,控件 id 被破坏。因此,您的代码无法正常工作。
希望这对你有用。
将导致 jQuery 搜索 ID 以 'hidClientField' 结尾的控件 var hv = $('input[id$=hidClientField]').val();你可以使用类名选择器来实现同样的目的。查看这个类似的问题。
在 asp.net 中,控件 id 被破坏。因此,您的代码无法正常工作。
希望这对你有用。
Try any of the following
If ASP.Net control and javascript both are on same page, then use
If you want to access the control from some JS file, then
You can use class name selector to achieve same. Check out this similar question.
In asp.net, controls id is mangled. Because of this your code is not working.
Hope this works for you.
will cause jQuery to search control whose ID ends with 'hidClientField' var hv = $('input[id$=hidClientField]').val();You can use class name selector to achieve same. Check out this similar question.
In asp.net, controls id is mangled. Because of this your code is not working.
Hope this works for you.
您忘记了选择器中的
#
以通过 ID 进行选择:尽管 ASP.NET 会根据命名容器生成 ID,因此您最终可能会得到像
ctl1$hidClientField
这样的 ID。然后,您可以使用“属性结尾为”选择器:查看有关 jQuery 选择器 的文档
You forgot the
#
in your selector to select by ID:Although asp.net generates ID based on the naming containers so you might end up with an ID like
ctl1$hidClientField
. You can then use the "attribute ends with" selector:Check the documentation about jQuery selectors
使用 ID 选择器。
或者
Use ID selector.
Or
因为 jQuery 对
asp:HiddenField
一无所知。它会在 HTML 结构中查找。因此没有
ID= HiddenFieldServerDateTime
的输入。有几种方法可以克服这个问题:使用 css 选择器:使用以下选择器:
var serverDateTime = $(".SomeStyle").val();
CssClass
不是HiddenField
类(并且它没有属性
集合,因此您无法手动添加)。使用
ClientID
属性:将隐藏字段包含在您可以选择的内容中:
Because jQuery knows nothing about
asp:HiddenField
. It looks in the HTML structure where you have<input type="hidden" name="ctl00$cph_main$HiddenFieldServerDateTime" id="ctl00_cph_main_HiddenFieldServerDateTime" ...
. So there's no input withID= HiddenFieldServerDateTime
. There are a few ways to overcome this:Use a css selector:with the following selector:
var serverDateTime = $(".SomeStyle").val();
CssClass
is not an available class on theHiddenField
class (and it doesn't have anAttributes
collection, so you can't add it manually).Use
ClientID
property:Wrap the hidden field in something you can select:
如果您使用 Asp.net 控件,服务器将破坏控件 ID。它在 id 中添加了一堆无关的控制树层次结构信息。您需要引用正在呈现的实际 id 是什么,这可以通过控件上的 ClientID 属性 (hfUser.ClientID) 获得,或者以不同的、更迂回的方式访问您的控件,例如找到控件的父级,然后搜索其父级。孩子们找到你的控制权。
如果您不必使用 asp.net HiddenField 控件,请尝试仅使用常规的旧 html 输入。
If you are using Asp.net controls, the server will mangle the control ids. It adds a bunch of extraneous control tree hierarchy information into the id. You need to reference what that acutal id is that's getting rendered, which is availble with the ClientID property on the control (hfUser.ClientID) or access your control in a different, more roundabout way, like find the controls parent, then search through its children to find your control.
If you don't have to use the asp.net HiddenField control, try just using a regular old html input.
你可以这样做
you can do in this way
请尝试这段代码。
Please try this code.
在代码中包含 ClientIDMode="Static"。
var obj = $('#hidClientName').val();
或
var obj = $('#<%=hidClientName.ClientID%>') .val();
Include ClientIDMode="Static" in your code.
var obj = $('#hidClientName').val();
<asp:HiddenField ID="hidClientName" ClientIDMode="Static" runat="server" />
Or
var obj = $('#<%=hidClientName.ClientID%>').val();
<asp:HiddenField ID="hidClientName" runat="server" />