JavaScript错误“无法设置为空“
问题描述:
<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
值被印刷的特性‘价值’,但同时将其分配给该文本框它给了我一个错误。JavaScript错误“无法设置为空“
答
您已经取代了从当页面完整的HTML你做
document.write(rollNo);
如果您rollNo
时说,10
那么你会得到
<body>10</body>
当您的UserAction()
函数被调用时在浏览器中呈现。因此,您需要删除此行document.write(rollNo);
,以便下一行document.getElementById("rollNo")
可以找到id
为rollNo
的元素。所以,你UserAction()
变,
function UserAction() {
//get roll no from localstorage
var rollNo = 10;
document.getElementById("rollNo").value = rollNo;
}
<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>
而且在当元素被document.getElementById("rollNo")
检测这样你就不会得到错误"Cannot set property 'value' of null'
答
尝试用以下行替换功能:
function UserAction() {
var rollNo = parseInt(localStorage.getItem("rollNo"));
document.getElementById("rollNo").value= rollNo;
}
您提交的错误是放置整个身体的卷号而不是特定的输入字段。
由于整个主体在localstorage中被替换为rollnumber,因此没有id为'rollNo'的元素,因此错误表示它不能设置null的属性'value'。
感谢它的工作实际上,我写了document.write()来测试变量的内容,从此我将忽略它 –