HTML中,input元素的 Disabled属性 所产生的后端无法接收数据的问题
背景
今天从前端提交 form表单 数据时,发现 设置 **Disabled **的 input 元素的字段数据在后端无法接收到
## 原因
查阅资料(来自W3school):
disabled 属性规定应该禁用 input 元素。
被禁用的 input 元素既 不可用 ,也不可点击。可以设置 disabled 属性,直到满足某些其他的条件为止(比如选择了一个复选框等等)。然后,就需要通过 JavaScript 来删除 disabled 值,将 input 元素的值切换为可用。
注释:disabled 属性无法与 type="hidden" 一起使用。
## 分析
通过查阅资料发现,被 disabled 属性 修饰的input元素为 不可用 的,说明 它在form表单中是无法 提交/携带 数据的,即使它本身有 value 值
解决方法
- 如果只是为了在前端展示时不可操作,可以将设置 input元素 的 ReadOnly 属性,相比 Disabled ** 属性来说,ReadOnly** 做到了只读,并且在form表单提交时,可以将 自身input元素 的数据提交到后端
- 如资料所说,通过 JavaScript 来删除 disabled 值,将 input 元素的值切换为可用。此方法比较繁琐,需要编写JS代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统