使用 Jquery 访问隐藏字段

发布于 2024-08-16 19:41:39 字数 279 浏览 4 评论 0原文

我有一个从母版页派生的页面。在此页面上,我有一个隐藏字段(“hfUser”)。如何使用 JQuery 访问此“hfUser”控件并获取/设置其值? 我尝试过这种变体:

$(document).ready(function() {
    var test = $("#hfUser").val();
    alert(test);

});

但 test = undefined。我猜我的选择器错误,但我不知道如何获取 asp 隐藏字段。有什么想法吗?

谢谢

I have a page that's derived from a master page. On this page, I have a hiddenfield ("hfUser"). How can I access this "hfUser" control and get/set its value using JQuery?
I've tried variants of this:

$(document).ready(function() {
    var test = $("#hfUser").val();
    alert(test);

});

but test = undefined. I'm guessing I've got the selector wrong, but I don't know how to get an asp hiddenfield. Any ideas?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

花期渐远 2024-08-23 19:41:39

如果您使用 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.

打小就很酷 2024-08-23 19:41:39

ASP 确实喜欢破坏 ID。你越深入兔子洞(或嵌套控件),ASP 添加到你的控件 ID 中的就越多。加上母版页,它又是一两个级别。

访问服务器端控件(设置 runat 属性)的另一种方法是在 jQuery 选择器中使用方括号。

像这样:

$("[id$='hidImgSource']").val()

选择 ID 以“hidImgSource”作为名称结尾部分的任何元素。所以它会找到损坏的 ID。

以下是 jQuery 选择器页面 的链接,其中解释了更多选项。

ASP does like to mangle ID's. The further down the rabbit hole (or nesting controls) you go, the more ASP adds to your control ID. Throw in Master Pages, and it's yet another level or two.

Another way to access server-side controls (with the runat property set), is to use the square brackets in your jQuery selector.

Like this:

$("[id$='hidImgSource']").val()

That selects any elements whose ID has 'hidImgSource' as ending part of the name. So it will find mangled ID's.

Here is a link to the jQuery Selectors page that explains some more options.

枫林﹌晚霞¤ 2024-08-23 19:41:39

如果隐藏字段是 ASP.NET 控件,请查看此博客文章,以帮助您使用 ASP.NET 控件的 jQuery 选择器

http://www.foliotek.com/devblog/extending-jquery-to-select-asp-controls/

If the hidden field is an ASP.NET control, check out this blog post to help you with jQuery selectors for ASP.NET controls

http://www.foliotek.com/devblog/extending-jquery-to-select-asp-controls/

甜点 2024-08-23 19:41:39

这样做:

$(document).ready(function()
{
    var test = $("**#<%= hfUser.ClientID %>**").val();
    alert(test);
});

Do it like this:

$(document).ready(function()
{
    var test = $("**#<%= hfUser.ClientID %>**").val();
    alert(test);
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文