交付时真正要回答的问题
供应商把报价编号锁定,不让访客编辑,收到询盘时却找不到该编号。关键不在字段是否变灰,而在它是否需要提交、可选择和可聚焦;服务端还须独立核验允许使用哪份报价。
依据与可证明的范围
disabled控件不参与表单提交;支持readonly的输入仍会提交。两者都不是权限控制。 MDN · 2026年10月16日核对。
已填写的合成验收例子
合成教学例子,不是真实客户记录。先看输入与预期,再运行下方隔离的浏览器练习。表格窄屏可横向滚动;字段名和示例值保留原样,方便与测试源码对照。
| 输入 | 检查 | 预期 |
|---|---|---|
| reference=Q-18, readonly | FormData是否含编号 | Q-18 |
| reference=Q-18, disabled | FormData是否含编号 | 缺失 |
| 脚本将只读编号改成Q-19 | 客户端值可以改变 | 服务端必须核验编号权限 |
怎样核验,不只看界面
- 列出仅展示、需要提交、需要服务端独立确定的字段。
- 在练习中对照disabled与readonly。
- 在非生产集成中用变更编号测试,确认服务端拒绝越权访问。
怎样解释结果
字段缺失可能解释路由故障,但恢复隐藏或只读字段不是安全修复。保留载荷差异、接收端决定与脱敏结果。浏览器练习通过并不证明用户拥有该报价,服务端授权必须有自己的反例测试。
明确不证明什么
readonly不适用于全部控件。练习使用文本输入,不是下拉框;测试不要公开真实报价编号。
可运行练习与交付记录
打开浏览器验收练习 · 查看可读测试源码。练习只在浏览器内创建临时元素,使用合成内容,不读取账号、不上传文件、不发送邮件或表单。记录被测浏览器版本、检查名、实际值与通过状态。真实集成结果另记,不能用本地通过代替。