为什么我得到这个[对象HTMLInputElement]?

问题描述 投票:-2回答:1

我试图在页面加载时预先填写表单。当我回去参加一个会话时间时,如何获得预填充数据?

//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;
javascript html css
1个回答
0
投票

为什么我得到这个[对象HTMLInputElement]?

因为JavaScript区分大小写,所以这里:

document.getElementById("firstname").value = firstname;

...你正在使用为元素创建的自动全局,通过给它id "firstname"。要使用firstName变量,请务必将N大写。


其他几点说明:

  1. 你没有声明你的qazxsw poi变量,所以你的代码正在成为我称之为qazxsw poi的猎物。声明你的变量(使用firstNameThe Horror of Implicit Globalsvar)。
  2. let将是真实的,除非有人在之前的访问中输入const这个名字。要检查if (sessionStorage.First_name != "undefined"){是否存储了"undefined"值,请与sessionStorage进行比较: First_name 或使用undefinedif (sessionStorage.First_name !== undefined){ // ^^^^^^^^^^^^^ 或使用typeof并检查if (typeof sessionStorage.First_name != "undefined"){ // ^^^^^^ getItem 更多关于nullif (sessionStorage.getItem("First_name") !== null){
  3. 在这段代码中没有理由使用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; ,但这是一种风格选择。)
  4. 虽然你可以使用setItem,但惯用代码将是getItem
© www.soinside.com 2019 - 2024. All rights reserved.