我有一个从母版页派生的页面。在此页面上,我有一个隐藏字段(“hfUser”)。如何使用 JQuery 访问此“hfUser”控件并获取/设置其值?我试过这个的变种:
$(document).ready(function() {
var test = $("#hfUser").val();
alert(test);
});
但测试 = 未定义。我猜我选错了,但我不知道如何获得一个 asp hiddenfield。有任何想法吗?
谢谢
我有一个从母版页派生的页面。在此页面上,我有一个隐藏字段(“hfUser”)。如何使用 JQuery 访问此“hfUser”控件并获取/设置其值?我试过这个的变种:
$(document).ready(function() {
var test = $("#hfUser").val();
alert(test);
});
但测试 = 未定义。我猜我选错了,但我不知道如何获得一个 asp hiddenfield。有任何想法吗?
谢谢
如果您使用的是 Asp.net 控件,服务器将破坏控件 ID。它在 id 中添加了一堆无关的控制树层次结构信息。您需要引用正在呈现的实际 id,这可通过控件 (hfUser.ClientID) 上的 ClientID 属性获得,或者以不同的、更迂回的方式访问您的控件,例如找到控件父级,然后搜索其孩子找到你的控制。
如果您不必使用 asp.net HiddenField 控件,请尝试仅使用常规的旧 html 输入。
ASP 确实喜欢破坏 ID。越往下钻进兔子洞(或嵌套控件),ASP 添加到控件 ID 的次数就越多。加入母版页,它又是一个或两个级别。
访问服务器端控件(使用 runat 属性集)的另一种方法是在 jQuery 选择器中使用方括号。
像这样:
$("[id$='hidImgSource']").val()
这会选择 ID 为“hidImgSource”的任何元素作为名称的结尾部分。所以它会找到损坏的ID。
这是jQuery 选择器页面的链接,其中解释了更多选项。
如果隐藏字段是 ASP.NET 控件,请查看此博客文章以帮助您使用 ASP.NET 控件的 jQuery 选择器
http://www.foliotek.com/devblog/extending-jquery-to-select-asp-controls/
像这样做:
$(document).ready(function()
{
var test = $("**#<%= hfUser.ClientID %>**").val();
alert(test);
});