使用Jquery访问隐藏字段

时间:2010-01-07 22:29:29

标签: asp.net jquery hiddenfield

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

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

});

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

由于

4 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:3)

ASP确实喜欢破坏ID。兔子洞(或嵌套控件)越往下走,ASP就会增加你的控件ID。扔进母版页,这又是另一个等级。

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

像这样:

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

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

以下是jQuery Selectors page的链接,其中介绍了更多选项。

答案 2 :(得分:2)

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

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

答案 3 :(得分:0)

这样做:

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