2012-11-12 37 views
1

未定義以我ASPX標記我有以下定義:HiddenField.value在JS

<asp:HiddenField runat="server" ClientIDMode="Static" ID="hidField" /> 

我有C#代碼如下,這給我的隱藏字段的值:

hidField.value = check().ToString(); 

假設爲簡單起見,該檢查是一個返回true的函數。

我做了JS代碼執行以下操作:

_myBool = $("#hidField"); 
alert(_myBool.value); 

這提醒不確定。

爲了進行調試,我逐步瞭解並在C#中看到,hidField.value的確如此。 我試着提醒_myBool.length返回1和_myBool返回[對象對象],所以我沒有調用未定義的undefined。

+2

你錯過了'$'? '$(「#hidField」)''你也應該使用'.val()'或'[0] .value'而不是'.value' –

+0

我有美元符號,但是你是對的。它應該是.val()我想我早些時候做過.value,但我忘記了缺口 – Rhs

+0

請確保您選擇以下答案之一作爲接受的答案。 –

回答

2

試試這個

_myBool = $("#hidField"); //my bool is a jQuery Object 
alert(_myBool.val()); //can only get value with .val() 

OR

_myBool = $("#hidField")[0]; //[0] gets the element in the object 
alert(_myBool.value); //can use the javascript .value 
1

缺少$符號..

var _myBool = $("#hidField"); 

alert(_myBool[0].value); // DOM Object 

alert(_myBool.val()); // jQuery Object 

還要注意選擇,因爲它會預先考慮內容佔位符可能無法與runat="server"屬性工作..

這是一個更好的選擇

var _myBool = $('[id*="hidField"]'); 
+0

它應該與我的選擇器,因爲我使ClientIDMode爲靜態 – Rhs

2

你忘了dollarsign並使用VAL()函數

alert($("#hidField").val()); 
+0

我想你知道你做錯了什麼,但在這裏你去:http://api.jquery.com/val/ 值是爲DOM元素和VAL )用於jQuery選擇器。 –

0

確保您使用的是正確ID:

_myBool = $("#<%= hidField.ClientID %>").val(); 

查看源當頁面加載並檢查該字段時。機會是ID不是「hidField」。上面的代碼將是正確的。