用 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推出的图片背景移除工具
相关推荐
HongXu_CaiYi5 分钟前
0103-python相关-函数、文件一木 之林33 分钟前
三、内存管理、指针与堆栈vortex51 小时前
从Conda到UV:Python项目依赖管理的现代演进何以解忧,唯有..1 小时前
Python time 模块详解:时间处理与日期操作指南残 风1 小时前
PostgreSQL 存储机制详解梅雅达编程笔记2 小时前
Day 18 · 综合实战 B:AI 客服 Agent(专栏收官)测试老哥2 小时前
Pytest自动化测试框架tep环境变量、fixtures、用例三者之间的关系Buke..2 小时前
【APP 逆向】哔哩哔哩 sign 参数逆向(下):OLLVM 混淆还原 sign 算法JacksonMx2 小时前
Java CompletableFuture 异步编程实战:从入门到架构师避坑指南tachibana22 小时前
性能指标的口径选择