点击按钮无法删除localStorage问题求助
解决localStorage删除项失效的问题
你的问题出在函数命名冲突上:reset是浏览器内置的全局函数(对应form元素的重置方法),你自定义的reset函数被内置函数覆盖了,点击按钮时实际调用的是form的重置方法,而非你写的删除localStorage的逻辑。
下面是两种修复方案:
方案1:修改自定义函数名称
把函数名改成非内置的名称,比如resetMondayStorage,同时更新HTML里的调用:
修改后的HTML
<form class="delet" onsubmit="resetMondayStorage(); return false"> <button>Löschen</button> </form>
修改后的JS
function resetMondayStorage() { localStorage.removeItem("monday"); }
方案2:使用事件监听绑定(更推荐)
避免使用内联事件绑定,改用JS事件监听的方式,从根本上避免全局命名冲突:
HTML
<form class="delet"> <button>Löschen</button> </form>
JS
document.querySelector('.delet').addEventListener('submit', function(e) { e.preventDefault(); // 阻止表单默认提交行为 localStorage.removeItem("monday"); });
这样修改后,点击按钮就能正常删除localStorage里的"monday"项了。
内容的提问来源于stack exchange,提问作者KaliboGHG
相关产品推荐
相关产品推荐

