访问javascript中的隐藏字段值
我的表单中有一个隐藏字段,我正在服务器上设置隐藏字段的值,并试图从javascript访问该值 我发现错误:无法获取属性“value”的值:对象为null或未定义 如果我查看源,则设置隐藏字段值,并且隐藏字段的ID与我调用的ID相同 ASPX访问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 如果您使用
我记得以前这样做过,它应该相对简单,但由于某些原因,我没有正确理解。您可以使用
innerText
notvalue
来检索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>