无法设置HTML输入值

时间:2015-04-11 08:19:14

标签: javascript html

我想获取会话值然后设置为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>

为什么?我该如何解决这个问题?

2 个答案:

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

再试一次!