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

HTML设置contenteditable=false的密码输入框为何仍可编辑?

问题原因

你用错属性了,contenteditable 本身就不适用于<input>这类原生表单控件,自然达不到禁止编辑的效果:

  • contenteditable 属性的设计目标,是控制普通非交互类DOM元素(比如<div>、<p>、<span>这类本身没有原生编辑能力的元素)是否允许用户编辑元素内的文本/子节点内容,对原生表单输入控件完全无效。
  • <input>(包括密码类型输入框)属于浏览器原生实现的可交互替换元素,它的输入交互逻辑由浏览器内置的控件逻辑接管,不受contenteditable属性管控,你给它设置contenteditable="false"不会阻断原生的输入行为,所以用户依然可以正常修改框内内容。
正确实现方式

如果要禁止用户修改输入框的值,要使用表单元素原生支持的控制属性:

  • 加readonly属性:输入框不可被用户编辑,但可以正常聚焦,输入框的值会在表单提交时正常上报
  • 加disabled属性:输入框不可被编辑、不可被聚焦,默认会显示灰化样式,表单提交时不会上报该字段的值

对应只读密码框的正确写法示例:

<input class="pw" type="password" value="1234" readonly>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 03:57:20