用 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推出的图片背景移除工具
相关推荐
sg_knight2 小时前
设计模式实战:责任链模式(Chain of Responsibility)2301_803875612 小时前
如何通过phpMyAdmin给WordPress所有用户发送全站通知_系统表插入学弟3 小时前
【内涵】深度学习中的三种变量及pytorch中对应的三种tensor2301_777599373 小时前
mysql如何进行数据库容量规划_评估磁盘空间增长趋势aq55356003 小时前
PHP vs Python:30秒看懂核心区别NineData3 小时前
NineData 亮相香港国际创科展 InnoEX 2026,以 AI 加速布局全球市场m0_377618233 小时前
Redis怎样应对大规模集群的重启风暴_分批次重启节点并等待集群状态恢复绿灯后再继续操作心态与习惯4 小时前
Julia 初探,及与 C++,Java,Python 的比较imuliuliang4 小时前
存储过程(SQL)