You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

onchange事件中sessionStorage.clear()无效,如何实现选test时清空文本框?

问题分析与解决方案

嘿,我一眼就瞅出问题所在了!你现在用sessionStorage.clear()是在清空浏览器的会话存储,但你的需求是清空文本框的内容——这俩完全不是一个东西,难怪没效果呀😅

问题根源

文本框的内容是存储在DOM元素本身的value属性里的,和sessionStorage没有直接关联。你现在调用的是会话存储的清空方法,自然不会影响到文本框的显示内容。

修正后的代码

首先给你的文本框添加一个id,方便我们获取它的DOM对象:

<input type="text" id="txtInput" value="">
<select id="abc" onchange="SesRes()">
  <option value="xyz">xyz</option>
  <option value="test">test</option>
</select>

然后修改你的JavaScript函数,直接操作文本框的value属性来清空内容:

function SesRes() {
  var x = document.getElementById("abc").value;
  if(x == "test") {
    // 获取文本框元素,将其值设为空字符串
    document.getElementById("txtInput").value = "";
  }
}

额外补充(如果需要用到sessionStorage的场景)

要是你之前的逻辑是想用sessionStorage保存文本框的内容,那得先在文本框输入时把值存进去,比如:

// 假设文本框输入时触发保存
document.getElementById("txtInput").addEventListener('input', function() {
  sessionStorage.setItem('inputValue', this.value);
});

这时候清空的话,就需要同时清空sessionStorage和文本框:

function SesRes() {
  var x = document.getElementById("abc").value;
  if(x == "test") {
    sessionStorage.removeItem('inputValue'); // 或者用clear()清空全部会话存储
    document.getElementById("txtInput").value = "";
  }
}

但根据你描述的需求,直接操作文本框的value就足够啦。

内容的提问来源于stack exchange,提问作者Jason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:40:45