3

我的表单中有一个隐藏字段,我正在服务器上设置隐藏字段的值并尝试从 javascript 访问该值,

我收到错误:无法获取属性“值”的值:对象为空或未定义

如果我查看源,则设置隐藏字段值,并且隐藏字段的 ID 与我正在调用的 ID 相同。

ASPX

            var v = document.getElementById('hxValue').value;
            <asp:HiddenField ID="hxValue" runat="server"/>

VB

            hxValue.Value = "Value1"

我记得以前这样做过,它应该相对简单,但由于某种原因,我没有做对。

4

5 回答 5

5

您的代码将起作用。对于简单的表格,只需添加

<asp:HiddenField ClientIDMode="static" ID="hxValue" runat="server"/>

或者

您需要使用

'<%=hxValue.ClientID%>'
于 2012-11-27T08:46:51.790 回答
4

好的,在脚本运行之前似乎没有设置我的隐藏字段的值,因此接收到一个空值。我曾假设在服务器页面加载上放置断点并且脚本将确定是否在脚本运行之前设置了控件,但似乎没有。

固定如下:

            <html xmlns="http://www.w3.org/1999/xhtml" >
            <head>

            <title></title>

            <script type="text/javascript">
                function GetHiddenValues() {
                    var v = document.getElementById('<%= hxValue.ClientID %>').value;
                }
            </script>
            </head>

            <body onload="GetHiddenValues() ;">

            <form runat="server">

            <asp:HiddenField ClientIDMode="static" ID="hxValue" runat="server"/>

            </form>
            </body>
            </html>

感谢所有的帮助。

于 2012-11-27T09:04:00.717 回答
2

您可以使用innerTextnotvalue来检索 hxValue 的值。

var v = document.getElementById('hxValue').innerText

如果你正在使用jQuery你也可以做

var v = $("#hxValue").val();
于 2012-11-27T08:24:59.040 回答
1

尝试这个

var v = document.getElementById('<%= hxValue.ClientID %>').value;

问题是隐藏字段是服务器端控件,而您提供的 ID 是服务器端 ID,您必须获取该控件的客户端 ID 才能在客户端 JavaScript 或 Jquery 中引用它。

更新

将此脚本放在页面末尾,就在</body>类似这样的内容之前

<script type="text/javascript" language="javascript">
  var v = document.getElementById('<%= hxValue.ClientID %>').value;
</script>
</body>
于 2012-11-27T08:30:58.727 回答
0

尝试<asp:HiddenField ID="hxValue" runat="server" Value=""/>
然后通过 id 调用它并设置值

于 2012-11-27T08:27:00.563 回答