Javascript错误"无法设置属性'值' of null'

时间:2017-07-04 06:59:43

标签: javascript html jsp

<body onload="UserAction()">


<form action="student" id="add" align="center">
    Rollno:<input type="text" name="rollNo"  id="rollNo"><br>
    Name: <input type="text" name="name" id="name"><br>
    <br>

<script type="text/javascript" language="javascript">
        function UserAction() {

            var rollNo = parseInt(localStorage.getItem("rollNo"));
            document.write(rollNo);
            document.getElementById("rollNo").value = rollNo;
        }
</script>

rollNo值会被打印,但在将其分配给文本框时会出现错误。

2 个答案:

答案 0 :(得分:1)

当您执行

时,您已从页面替换了整个HTML

document.write(rollNo);

如果您说rollNo 10,那么您将获得

<body>10</body>
调用UserAction()函数时,在浏览器中呈现

。因此,您需要删除此行document.write(rollNo);,以便下一行document.getElementById("rollNo")可以找到idrollNo的元素。所以你UserAction()成了,

&#13;
&#13;
function UserAction() {
  //get roll no from localstorage
  var rollNo = 10;
  document.getElementById("rollNo").value = rollNo;
}
&#13;
<body onload="UserAction()">


  <form action="student" id="add" align="center">
    Rollno:<input type="text" name="rollNo" id="rollNo"><br> Name: <input type="text" name="name" id="name"><br>
    <br>
  </form>

</body>
&#13;
&#13;
&#13;

这样,当document.getElementById("rollNo")检测到元素时,您将不会收到错误"Cannot set property 'value' of null'

答案 1 :(得分:0)

尝试使用以下行替换该函数:

function UserAction() {
        var rollNo = parseInt(localStorage.getItem("rollNo"));
        document.getElementById("rollNo").value= rollNo;
    }

您提交的错误是用卷号而不是特定的输入字段替换整个身体。

由于整个正文被本地存储中的rollnumber替换,因此没有带有id&#39; rollNo&#39;的元素,因此错误表明它无法设置属性&#39; value&#39; null。