提交表单时提示local storage not defined的原因是什么?
问题修复说明
- 核心错误点1:浏览器原生本地存储API为驼峰命名的
localStorage,你代码中使用全小写的localstorage不符合规范,导致触发未定义报错,将拼写改为localStorage即可解决该报错。 - 隐藏错误点2:你调用数组push方法时误用了方括号
[],push是数组实例方法,需要用小括号传参,把info.push[formInfo]改为info.push(formInfo)才能正确把表单数据存入数组。
修复后的完整代码
let info = []; const addInfo = (ev) => { ev.preventDefault(); let formInfo = { cardNumber: document.getElementById('cardNumber').value, creditExpires: document.getElementById('creditExpires').value, creditCvc: document.getElementById('creditCvc').value, firstName: document.getElementById('firstName').value, lastName: document.getElementById('lastName').value, emailaddress: document.getElementById('emailAddress').value, phoneNumber: document.getElementById('phoneNumber').value, country: document.getElementById('country').value, streetAddress: document.getElementById('streetAddress').value, city: document.getElementById('city').value, state: document.getElementById('state').value, zipcode: document.getElementById('zipcode').value, comments: document.getElementById('comments').value } info.push(formInfo); document.forms[0].reset(); localStorage.info = JSON.stringify(info); } document.addEventListener('DOMContentLoaded', () => { document.getElementById('submitDonation').addEventListener('click', addInfo); });
内容的提问来源于stack exchange,提问作者Remy Kasady
相关产品推荐
相关产品推荐

