我的表单中有一个隐藏字段,我在服务器上设置隐藏字段的值并尝试从javascript访问此值,
我收到错误:无法获取属性'value'的值:object为null或undefined
如果我查看源,则设置隐藏字段值,隐藏字段的ID与我正在呼叫的ID相同。
ASPX
var v = document.getElementById('hxValue').value;
<asp:HiddenField ID="hxValue" runat="server"/>
VB
hxValue.Value = "Value1"
我记得之前这样做过,它应该相对简单,但出于某种原因,我说得不对。
答案 0 :(得分:4)
您的代码将有效。对于简单表单,只需添加
即可<asp:HiddenField ClientIDMode="static" ID="hxValue" runat="server"/>
OR
您需要使用
查找客户端ID'<%=hxValue.ClientID%>'
答案 1 :(得分:3)
好吧,看起来我的隐藏字段的值在脚本运行之前没有设置,因此接收到空值。我假设在服务器页面上加载断点并且脚本将确定在脚本运行之前是否设置了控件,而不是。
修正如下:
<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>
感谢所有的帮助。
答案 2 :(得分:1)
您可以使用innerText
而不是value
来检索hxValue的值。
var v = document.getElementById('hxValue').innerText
如果你使用jQuery
,你也可以
var v = $("#hxValue").val();
答案 3 :(得分:0)
尝试<asp:HiddenField ID="hxValue" runat="server" Value=""/>
然后通过id调用它并设置值
答案 4 :(得分:0)
试试这个
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>