为什么我得到这个[对象HTMLInputElement]?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我得到这个[对象HTMLInputElement]?相关的知识,希望对你有一定的参考价值。
我试图在页面加载时预先填写表单。当我回去参加一个会话时间时,如何获得预填充数据?
//inside the validation code
if (formOkay == false){
document.getElementById("textform").innerText = "Check, There are some errors !";
}else {
document.getElementById("textform").innerText = "";
var storage = window.sessionStorage;
var firstName = document.getElementById("firstname").value;
storage.setItem("First_name",firstName);
}
return formOkay;
//inside the function init
//Frist_name = the input name
//firstname = the input id
function init (){
var formId = document.getElementById("myForm");
formId.onsubmit = validatingForm;
//getting the hob reference number using sessionStorage
document.getElementById("job_number").value = sessionStorage.job_number;
var storage = window.sessionStorage;
if (sessionStorage.First_name != "undefined"){
firstName = storage.getItem("First_name");
document.getElementById("firstname").value = firstname;
}else {
alert("your webpage doesn't support webstorage");
}
}
window.onload = init;
答案
为什么我得到这个[对象htmlInputElement]?
因为javascript区分大小写,所以这里:
document.getElementById("firstname").value = firstname;
...你正在使用为元素创建的自动全局,通过给它id
"firstname"
。要使用firstName
变量,请务必将N
大写。
其他几点说明:
- 你没有声明你的qazxsw poi变量,所以你的代码正在成为我称之为qazxsw poi的猎物。声明你的变量(使用
firstName
,The Horror of Implicit Globals或var
)。 let
将是真实的,除非有人在之前的访问中输入const
这个名字。要检查if (sessionStorage.First_name != "undefined"){
是否存储了"undefined"
值,请与sessionStorage
进行比较:First_name
或使用undefined
:if (sessionStorage.First_name !== undefined){ // ^^^^^^^^^^^^^
或使用typeof
并检查if (typeof sessionStorage.First_name != "undefined"){ // ^^^^^^
:getItem
更多关于null
和if (sessionStorage.getItem("First_name") !== null){
。- 在这段代码中没有理由使用MDN(或the spec):
storage
相反,只是:window
或使用作业,以反映您以后访问它的方式:var storage = window.sessionStorage; var firstName = document.getElementById("firstname").value; storage.setItem("First_name",firstName);
(就个人而言,我更喜欢sessionStorage.setItem("First_name", document.getElementById("firstname").value);
和sessionStorage.First_name = document.getElementById("firstname").value;
,但这是一种风格选择。) - 虽然你可以使用
setItem
,但惯用代码将是getItem
。
以上是关于为什么我得到这个[对象HTMLInputElement]?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我得到 null 而不是 Map 对象?如何解决这个问题?