2010-01-07 64 views
4

我有一個源自母版頁的頁面。在這個頁面上,我有一個隱藏字段(「hfUser」)。我如何訪問這個「hfUser」控件並使用JQuery獲取/設置它的值? 我試過這個變種:使用Jquery訪問隱藏域

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

}); 

but test = undefined。我猜我選擇錯了,但我不知道如何獲得一個asp隱藏字段。有任何想法嗎?

感謝

+1

你確定'hfUser'是'id'而不是'name'?如果它的名字是'$('input [name = hfUser]');'gtgt你的字段。 – prodigitalson 2010-01-07 22:34:43

+0

嗨,這是ID而不是名字。 – keyboardP 2010-01-07 23:45:01

回答

6

如果您正在使用Asp.net控件,服務器將裂傷的控件ID。它將一堆無關的控制樹層次信息添加到id中。你需要引用什麼樣的acutal id是呈現的,這可以通過控件上的ClientID屬性獲得(hfUser.ClientID),或者以不同的,更迂迴的方式訪問你的控件,比如找到控件的父類,然後搜索它的控件孩子找到你的控制。

如果您不必使用asp.net HiddenField控件,請嘗試使用常規的舊html輸入。

0

做這樣的:

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

ASP不喜歡破壞ID的。進一步放下兔子洞(或嵌套控件),你的控制ID越多,ASP越多。拋出主頁,這又是一兩個層次。

訪問服務器端控件(使用runat屬性設置)的另一種方法是在jQuery選擇器中使用方括號。

像這樣:

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

即選擇其ID具有 'hidImgSource' 作爲結束名稱的一部分的任何元件。所以它會發現損壞的ID。

以下是jQuery Selectors page的鏈接,它解釋了一些更多選項。