我想获取会话值然后设置为HTML输入控件,但是我收到错误Unable to get property of undefined or null reference
。以下是我的代码。
<head runat="server">
<title></title>
<script type="text/javascript">
function direct() {
setInputValue();
}
function setInputValue() {
document.getElementById('secureHash').value = '<%=Session["secureHash"]%>';
}
</script>
</head>
<body onload="direct()">
<form id="form1" runat="server" method="post" action="https://www.aaaaxyz.com">
<div>
</div>
<div>
<input type="text" name="secureHash" value="" /><br />
<input type="text" name="mid" value="0000000038" /><br />
<input id="btnSubmit" type="submit" value="Submit" />
</div>
<div>
</div>
</form>
</body>
为什么?我该如何解决这个问题?
答案 0 :(得分:0)
此错误是因为调用JS
的{{1}}代码是在secureHash
中声明secureHash
之前。
HTML
发生的事情是你在document.getElementById('secureHash').value = '<%=Session["secureHash"]%>';
中调用了尚未加载到你文档中的内容。
我总是建议您在正文标记结束之前将JS
代码放在文档的末尾。否则在加载页面时无法调用函数JS
。你必须在最后调用它。
您的代码中还有一件事是secureHash是direct
而不是name
。
以下是您需要的更改:
id
答案 1 :(得分:0)
类型错误
C#:会话[ “secureHash”]
VB:会话( “secureHash”)
您应该在输入文本框中添加 ID 的属性。
因此,您应该以这种方式更改代码:
<head id="Head1" runat="server">
<title></title>
<script type="text/javascript">
function direct() {
setInputValue();
}
function setInputValue() {
document.getElementById('secureHash').value = '<%=Session("secureHash")%>';
}
</script>
</head>
<body onload="direct()">
<form id="form1" runat="server" method="post" action="https://www.aaaaxyz.com">
<div>
</div>
<div>
<input type="text" id="secureHash" name="secureHash" value="" /><br />
<input type="text" name="mid" value="0000000038" /><br />
<input id="btnSubmit" type="submit" value="Submit" />
</div>
<div>
</div>
</form>
</body>
再试一次!