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

如何在行内比较HTML输入框的value与defaultValue并动态添加类?

行内实现输入框内容变更时添加高亮类的方案

方案1:通过event.target直接操作元素(推荐)

行内代码里用event.target替代this来获取当前输入框,完美规避this指向错误的问题。代码示例:

<input type="text" defaultValue="默认内容" oninput="event.target.classList.toggle('highlight', event.target.value !== event.target.defaultValue)">

原理:oninput事件触发时,event.target就是当前输入元素本身,通过classList.toggle的第二个布尔参数,自动在内容不等于默认值时添加highlight类,否则移除。

方案2:通过ID直接定位元素(适合简单场景)

如果输入框有唯一ID,也可以直接通过ID获取元素来操作,写法更直白:

<input id="uniqueInput" type="text" defaultValue="默认内容" oninput="const el = document.getElementById('uniqueInput'); el.classList.toggle('highlight', el.value !== el.defaultValue)">

这种写法不需要依赖事件对象,重复获取元素的开销在单个元素场景下可以忽略。

页面加载时的初始化处理

如果需要页面加载完成就检查初始状态(比如后端渲染时修改了默认值),可以给输入框加onload事件完成初始化:

<input type="text" defaultValue="默认内容" 
       oninput="event.target.classList.toggle('highlight', event.target.value !== event.target.defaultValue)"
       onload="this.classList.toggle('highlight', this.value !== this.defaultValue)">

这里onload事件里的this是指向输入元素的,不会出现指向错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:15:26