4

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

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

});

但测试 = 未定义。我猜我选错了,但我不知道如何获得一个 asp hiddenfield。有任何想法吗?

谢谢

4

4 回答 4

6

如果您使用的是 Asp.net 控件,服务器将破坏控件 ID。它在 id 中添加了一堆无关的控制树层次结构信息。您需要引用正在呈现的实际 id,这可通过控件 (hfUser.ClientID) 上的 ClientID 属性获得,或者以不同的、更迂回的方式访问您的控件,例如找到控件父级,然后搜索其孩子找到你的控制。

如果您不必使用 asp.net HiddenField 控件,请尝试仅使用常规的旧 html 输入。

于 2010-01-07T22:33:27.127 回答
3

ASP 确实喜欢破坏 ID。越往下钻进兔子洞(或嵌套控件),ASP 添加到控件 ID 的次数就越多。加入母版页,它又是一个或两个级别。

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

像这样:

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

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

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

于 2012-03-05T13:44:50.283 回答
2

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

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

于 2010-01-07T22:36:29.127 回答
0

像这样做:

$(document).ready(function()
{
    var test = $("**#<%= hfUser.ClientID %>**").val();
    alert(test);
});
于 2011-11-16T06:08:54.610 回答