预填必须可修改
别名: 预填可改 · locked prefill · non-editable default · 预填锁死
概念解释
应用写入的值如果不能被改,预填就变成强制。必须可修改指预填的输入仍是普通可编辑控件:能全选、能删、能换成另一条记录,提交的是人离开字段时的值而不是档案里的只读快照。把字段做成看起来像输入、实际 readonly 或点下去没有光标,属于锁死。浏览器自动填充后用户覆盖,是浏览器那一侧的覆盖权;这里谈的是应用不要把自己的档案写成不可碰。来源标没标、值准不准,都不取消这条。
机制
预填是猜测,猜测的退出是编辑。锁死之后,过期或张冠李戴的值没有出口,人要么放弃任务,要么把错误值提交出去。产品常用锁死来「保证和档案一致」,但这把档案的更新问题转嫁到了当前任务:人无法在这次发货里用临时地址。第二层是可编辑的假象:禁用态发灰还诚实;更糟的是看起来能点、弹出的却是「请去设置页改档案,改完再回来」。当前任务被打断,许多人会放弃或硬提交。可修改也不等于把档案偷偷改掉——提交可以用这次的值,档案保持原样,除非人明确说「以后都用这个」。把一次任务的覆盖和档案的持久更新绑死,会让人不敢改。
怎么研究
把预填地址做成可直接改、readonly、以及「去设置页改」。任务是把货发到一个与档案不同的地址。
自变量:编辑路径(就地 / 只读 / 外链到设置)、改完是否写回档案、是否要二次确认「同时更新档案」。 因变量:能否在不离开表单的情况下提交新地址、放弃率、误把档案改掉的次数、完成时长。
实验室里设置页就在隔壁,外链成本被低估。要做成需要重新登录或丢失已填项的设置页,才接近真实打断。不要把「最终提交了正确地址」当成就地可编辑——有人会复制到别处改完再贴回来,那是绕过锁死,不是锁死可接受。
边界
监管锁死的字段(已实名的法定姓名在本次不能改)应显示为只读并解释「这次不能改、要改走哪条流程」,不要伪装成输入框。计算出来的只读结果(税费、根据选项算出的价格)本来就不是预填,不应套用「必须可改」。批量管理员替他人填表时,可修改的是这份提交,不一定开放被代理人的档案。被禁用的字段如果值会提交,人会以为自己改过;禁用且仍提交的预填,等于锁死还撒谎。
怎么落地
- 预填字段保持可聚焦、可删除、可键入;不要用
readonly或去掉光标来「保护档案」。 - 若这次覆盖不应写回档案,就地改即可提交,另给一句可选的「同时更新档案」,默认不勾。
- 必须经另一流程才能改的法定项,做成明确只读加跳转说明,不要做成假输入。
- 验证:把档案地址改成临时地址并提交,确认不必经过设置页。提交后打开档案,确认未被悄悄覆盖(除非人勾了更新)。把字段设为 readonly 作为反例,确认无法就地改完当前任务。