Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问javascript中的隐藏字段值_Javascript_Asp.net_Vb.net_Hidden Field - Fatal编程技术网

访问javascript中的隐藏字段值

访问javascript中的隐藏字段值,javascript,asp.net,vb.net,hidden-field,Javascript,Asp.net,Vb.net,Hidden Field,我的表单中有一个隐藏字段,我正在服务器上设置隐藏字段的值,并试图从javascript访问该值 我发现错误:无法获取属性“value”的值:对象为null或未定义 如果我查看源,则设置隐藏字段值,并且隐藏字段的ID与我调用的ID相同 ASPX 我记得以前这样做过,它应该相对简单,但由于某些原因,我没有正确理解。您可以使用innerTextnotvalue来检索hxValue的值 var v = document.getElementById('hxValue').innerText 如果您使用

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

我发现错误:无法获取属性“value”的值:对象为null或未定义

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

ASPX


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

您可以使用
innerText
not
value
来检索hxValue的值

var v = document.getElementById('hxValue').innerText
如果您使用的是
jQuery
,您也可以这样做

var v = $("#hxValue").val();
试试

然后按id调用它并设置值

var v = document.getElementById('<%= hxValue.ClientID %>').value;
var v=document.getElementById(“”).value;
问题是隐藏字段是服务器端控件,而您提供的ID是服务器端ID,您必须获取该控件的客户端ID,才能在客户端JavaScript或Jquery中引用它

更新

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

<script type="text/javascript" language="javascript">
  var v = document.getElementById('<%= hxValue.ClientID %>').value;
</script>
</body>

var v=document.getElementById(“”).value;

您的代码将正常工作。对于简单的表单,只需添加

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

您需要使用

'<%=hxValue.ClientID%>'
“”

确定在脚本运行之前,我的隐藏字段的值似乎没有设置,因此接收到空值。我假设在服务器页面加载上放置断点,脚本将确定是否在脚本运行之前设置了控件,但不会出现这种情况

修正如下:

            <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>

函数GetHiddenValues(){
var v=document.getElementById(“”).value;
}

感谢您的帮助。

我尝试了innerText,但获取-无法获取属性“innerText”的值:对象为null或未定义@Darren Daviest由于ASP.NET可能会添加自己的前缀,因此该ID在客户端上实际上可能不会被称为hxValue。Try:document.getElementById(“”).value;正如yogi所建议的。由于经典ASP.NET使用的控件概念,生成的HTML中的控件ID不是服务器端使用的控件ID(ASP.NET允许在一个页面上有多个ID相同的元素,但在一个父元素中只有一个)@NikolaRadosavljević但当我在运行时查看源代码时,所反映的控件ID肯定是分配给它的ID?您在呈现的HTML中看到的ID就是您想要的ID。调试时在Visual Studio中看到的ID不同。在VisualStudio调试器中,您应该查看。在.NET 4中,引入了,以允许更可预测的ID生成。好的,我已尝试如上所述获取控件的客户端ID,但仍然无法获取值,我得到的对象为null或未定义。请在页面加载完成后使用Jquery Ready方法var v=document.getElementById(“”).value;谢谢,这很有效。无需在加载状态下运行,以防混淆任何人。
'<%=hxValue.ClientID%>'
            <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>