1

在我的 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 确实是真的。我尝试警告返回 1 的 _myBool.length 和返回 [Object object] 的 _myBool,所以我不会在未定义时调用未定义。

4

4 回答 4

2

缺少$符号..

var  _myBool = $("#hidField");

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

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

另请注意,选择器可能不适用于runat="server"属性,因为它预先添加了内容占位符..

这是一个更好的选择器

 var _myBool = $('[id*="hidField"]');
于 2012-11-12T21:47:24.853 回答
2

试试这个

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

或者

_myBool = $("#hidField")[0];  //[0] gets the element in the object
alert(_myBool.value);  //can use the javascript .value
于 2012-11-12T21:48:12.940 回答
2

您忘记了美元符号,还使用了 val() 函数

alert($("#hidField").val());
于 2012-11-12T21:49:02.197 回答
0

确保您使用的是正确的 ID:

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

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

于 2012-11-12T22:15:16.500 回答