E3.04.1switch versus checkbox timing设计
立即生效用开关,随表单提交用复选框
别名: 开关还是复选框 · apply now versus apply on save
概念解释
在二值字段上做控件选择时,先问生效时钟,再问外观。立即写入走开关,随表单提交走复选框。这条规则把「开/关长什么样」从「什么时候成为真」里拆出来:同一句「接收每周摘要」,放在系统设置里是开关,放在注册表里是复选框,因为前者拨完就订上,后者要等创建账户一起生效。选错时钟,后面所有文案和校验都在补洞。
选用不问「哪一个更新潮」,也不问「这一屏已经有没有滑块」。时钟才是自变量。
机制
开关和复选框在用户模型里绑定了不同的提交单元。开关的提交单元是这一行:手势结束,这一行的值已经离开客户端。复选框的提交单元是这张表:许多格子一起走,中间可以改来改去,提交前都算草案。人用控件识别提交单元,从而决定要不要立刻去验证结果、要不要在离开前找保存。
时钟一旦选反,验证行为会对不上控件。开关配上页脚保存,人会跳过保存;复选框配上立即写入,人会以为还能反悔到提交之前。两种错都表现为「我以为的现在」和系统里的现在差一步。
边界
自动保存把整页改成「每一行都是立即」,此时开关是对齐时钟,不是把复选框美化。相反,向导的每一步若只在内存里攒数据、最后才 POST,整段都该用复选框,哪怕某一步只有一个二值。硬件联动(手电筒、无线)没有表单可提交,不存在「随提交」这条路。权限尚未授予时,立即写入会失败:要么先走授权再给开关,要么在获得权限前不要假装有一个可拨的立即状态。
怎么落地
- 给每个二值字段标一个时钟:行内立即,或整表提交。时钟决定控件,不要先画再补逻辑。
- 设置页去掉页脚保存、注册和结账保留提交按钮,两套页面不要共用同一套二值外观。
- 把「看起来统一」让给间距和对齐,不要用同一控件去统一不同时钟。
- 验证:列出本屏所有二值,旁注实际写入发生在拨动时还是按保存时。控件类型必须与旁注一致,不一致的就是选错。