在JS中未定义HiddenField.value

时间:2012-11-12 21:45:36

标签: c# jquery asp.net

在我的aspx标记中,我有以下定义:

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

我有如下的C#代码,它给我的隐藏字段一个值:

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

假设check是一个返回true的函数,为简单起见。

我制作了JS代码来执行以下操作:

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

此警报未定义。

出于调试目的,我逐步看到了在C#中,hidField.value确实是真的。 我试着提醒_myBool.length返回1和_myBool返回[Object object]所以我没有在undefined上调用undefined。

4 个答案:

答案 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 :(得分:2)

你忘了美元符号,也使用了val()函数

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

答案 2 :(得分:1)

缺少 $ 符号..

var  _myBool = $("#hidField");

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

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

另请注意,选择器可能无法使用runat="server"属性,因为它会预先添加内容占位符。

这是一个更好的选择器

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

答案 3 :(得分:0)

确保使用正确的ID:

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

在页面加载时查看您的源并检查该字段。机会是ID不是“hidField”。上面的代码是正确的。