用 fieldset+legend 实现语义化只读订单预览,通过 disabled 属性天然阻断交互、传达不可编辑意图,配合 readonly 区分展示与锁定字段,HTML 原生格式化金额日期,@media print 保障打印可用性。用 fieldset + legend 做语义化只读订单区块纯 html 实现订单预览,核心不是"禁用表单",而是让结构本身表达「不可编辑」的意图。浏览器默认对 fieldset 应用视觉灰阶和边框,配合 disabled 属性能直接阻断所有子控件交互,比手动加 readonly 或 css pointer-events: none 更可靠。fieldset 天然语义是「一组相关字段」,比 div 更准确,屏幕阅读器会读出 legend 作为区块标题必须显式写 disabled 在 fieldset 上,而不是每个 input 单独加 ------ 否则下拉框、复选框仍可点开或切换注意:Chrome/Firefox 对 disabled fieldset 内的 textarea 会保留滚动条,但 Safari 有时不响应鼠标滚轮,需加 tabindex="-1" 确保键盘可聚焦查看长文本readonly 和 disabled 在订单字段里的区别必须分清订单号、商品名这类纯展示字段用 readonly,而金额、状态下拉这类本该可选但当前锁定的字段必须用 disabled。混用会导致表单提交行为异常或可访问性断裂。readonly 的 input 仍会随表单提交,值能被后端收到;disabled 的字段完全不参与提交 ------ 订单预览页若含隐藏校验字段(如 <input type="hidden" name="order_token" value="abc123">),千万别误加 disabledreadonly 只对 text、search、tel、url、email、number、password 有效;对 select、checkbox 无效,强行加没反应移动端 iOS Safari 对 readonly 输入框双击仍会唤起键盘,建议加 onfocus="this.blur()" 防止光标意外激活订单金额、日期等格式化字段别用 JS 拼接,用 HTML 原生属性兜底价格显示要带千分位、小数点后两位,日期要转成「2024-03-15」格式------这些看似得靠 JS 格式化,其实 HTML 本身就能扛住基础场景,避免 JS 加载失败时订单变成 NaN 或原始时间戳。 Adobe Image Background Remover Adobe推出的图片背景移除工具
相关推荐
一只旭宝10 分钟前
Python 与 C/C++ 内存模型对比总结砚底藏山河38 分钟前
容错重试与指数退避:网络抖动手抖不再丢数据(魔码量化实战 #04)今儿敲了吗1 小时前
02词云生成器李高钢1 小时前
Python Tornado 框架入门:从零搭建你的第一个异步 Web 应用蓝速科技1 小时前
会议室门牌触控预约选型与落地实战指南丨蓝速科技蓝速科技1 小时前
企业展厅数字人导览效果提升与选型实战指南丨蓝速科技奔跑吧树袋熊1 小时前
多租户隔离该做到哪一层:从连接池到 ORM 的取舍ocean21032 小时前
2025-2026年Python大厂面试高频问题罗光记2 小时前
全能 Go Agent 框架 Covonaut v1.1.2发布:终端对话加入旁问与三档输出xn71332 小时前
实测 Codex CLI 0.154.0:response.failed 为什么会被 idle timeout waiting for SSE 覆盖