JavaScript读取sessionStorage值无法填充指定input输入框问题求助
问题根因
- 核心原因:你代码中
else if(voicemailCallBack == "true");末尾多了一个多余的分号,该分号会结束当前else if的判断逻辑,导致后续大括号包裹的代码块脱离条件判断,无论前面的callInboundCallDropped/callOutboundCallDropped是否命中,这段代码都会强制执行。而该代码块中给issueDescription赋值的是VOICEMAILSUBJECT这个不存在的sessionStorage键,会直接把前面分支正确赋值的ISSUEDESCRIPTION内容覆盖为空。 - 次要问题:
callOutboundCallDropped分支中读取错误信息的键名写错,你存储的键是ERRORMESSAGE,代码中写为ERRORSMESSAGE多了一个S。
修复方案
- 删掉
else if(voicemailCallBack == "true")末尾的多余分号 - 修正
callOutboundCallDropped分支中的错误信息键名为ERRORMESSAGE - 建议给
issueDescription对应的input添加id属性,用document.getElementById方式取值赋值,避免form节点命名冲突导致的意外问题。
VS Code单步调试方法
你可以通过VS Code的浏览器调试插件直接对前端代码做单步调试,操作步骤如下:
- 在VS Code扩展市场搜索安装「Debugger for Chrome」或「Debugger for Microsoft Edge」插件
- 点击左侧边栏「运行和调试」按钮,选择创建
launch.json配置文件,对应选择你常用的浏览器环境 - 修改
launch.json中的url字段为你本地项目的访问地址(比如你用本地服务器跑的地址一般是http://localhost:5500,按实际端口调整) - 在需要调试的JS代码行号左侧点击添加断点,按F5启动调试,浏览器会自动打开对应页面,代码运行到断点位置会自动暂停,你可以在左侧变量面板查看所有变量的实时值,通过F10(单步跳过)、F11(单步进入)跟踪代码执行流程,就能直观看到
issueDescription的值是在哪一步被修改的。
内容的提问来源于stack exchange,提问作者Damion Fidler
相关产品推荐
相关产品推荐

