跳到正文
定位、使用者与职责边界
定位、使用者与职责边界
搜索 YUDS 文档

YUDS 文档

表单校验、草稿与提交

字段契约、分层校验、草稿与正式提交如何区分,以及离开、并发、输入法和提交快照怎样处理。

状态:本页的字段、校验、保存与提交契约为建议,可调整,不是用户逐条确认的规则;第 5 节字段关联、IME 与 FORM-SNAPSHOT 编排为候选规范,第 7 节 PAT-CONSENT 是代理依用户授权采用的有界文档候选。运行、设计资产、实现与平台支持均未验收,第 6 节验证案例与全部夹具未执行。 更新:2026-10-20 所属章节:表单与业务流程

本页承接允许保留的原始输入保护与真实结果反馈,原稿可含未解析或待修正内容;字段规则、自动保存能力、存储期限和业务生效条件由产品确定。

共同设计与验收边界见基础组件与交互契约,本页特殊条件与来源限制就近说明。

第 7 节 PAT-CONSENT(信息告知与明确选择)是通用 UI 有界主合同;设备、身份、法律或执行服务仍按该节能力前提判断。

1. 字段契约

每个字段至少说明用途、可接受的值、单位或格式、是否必填、何时必填、默认值来源、是否可编辑及错误处理。用户可见标签应稳定、明确,并与可访问名称关联;占位提示不能替代标签。

数字、日期和标识输入应区分展示格式与提交语义。金额需要明确币种,比例需要明确输入尺度,日期时间需要明确适用时区。允许的精度、舍入与计算结果由产品定义;界面不得静默改变对业务有意义的值。

默认值应有合理来源。自动带出的内容如果影响后果,应让用户知道并允许在权限范围内核查或修改;不能把默认勾选当作已读、已确认或已授权。

只读表示用户可查看但不能编辑;禁用通常表示某项操作暂不可用。两者都应保持必要的可读性,并按安全边界解释原因。无权查看不应伪装为一个装有真实值的禁用字段。

2. 校验层次、异步与错误

层次 典型问题 建议反馈
字段格式 日期格式、数字范围、标识长度 在合适时机就地说明,保留原输入
跨字段关系 结束早于开始、条件依赖未满足 指出关系及相关字段,不只标红一处
异步业务检查 标识占用、当前可用选项、关联对象状态 标明检查中/通过/未通过/无法检查
提交时业务检查 权限、版本、流程条件、额度等 服务端最终判断,返回可理解的原因与处理路径

首次进入未填写字段时不必立即显示全部错误。用户完成输入、离开字段或尝试提交时再提供适当反馈,避免每次按键都打断用户。用户修正已有错误后,及时更新其状态,不要求反复提交才知道已修正。

即时校验用于减少返工,不能代替提交时的服务端校验。服务端规则变化、权限变化或并发修改可能使先前通过的内容失效,界面应承认当前结果并保留可保留的工作。

有效错误说明应回答:哪里有问题、当前已知原因、怎样继续。使用“结束日期应不早于开始日期”等具体文案,避免只写“输入不合法”或暴露内部异常堆栈。

  • 字段错误放在相关字段附近,并通过语义关联供辅助技术获取。
  • 多处错误可提供摘要,列出问题并链接到对应字段、分组或步骤。
  • 提交失败且当前快照仍匹配、用户仍在本任务时,焦点可按策略移至错误摘要或首个有意义的问题位置;旧拒绝不污染新草稿,异步后台校验不应抢夺焦点,详见第 5 节「字段关联、IME 与 FORM-SNAPSHOT 编排」。
  • 隐藏分区内存在错误时,在分区入口提供明确提示,并允许直接到达错误。
  • 业务整体错误应显示在表单或任务层,例如“此任务已完成”;不要虚构某个字段错误迫使用户修改无关内容。
  • 受限信息不能出现在错误里。无权查询的对象不应通过“该编号已被某客户使用”泄露关联事实。

错误不应自动清空输入。必须修改格式才能继续时,尽量提供可核查的建议;有业务意义的转换需要明确呈现,不静默截断。

异步检查必须与所检查的值及依赖条件关联。用户将值从 A 改为 B 后,即使 A 的检查结果较晚返回,也不得覆盖 B 的当前状态。依赖字段、组织范围或对象版本变化时,旧检查结果应失效。

“正在检查”与“检查失败”不同。网络中断无法验证时,不能显示“值已存在”或“校验通过”。是否允许草稿保存、是否阻止正式提交,由实际安全与业务要求决定;界面解释当前限制。

检查次数和触发延迟由实现按性能与体验验证确定,本规范不预设固定毫秒数。无论采用何种优化,最终提交必须检验当前值与当前条件。

3. 保存、正式提交与自动保存

建议区分以下状态,并只使用实现支持的状态:

  • 尚未保存:内容仅在当前编辑上下文中。
  • 已暂存到此设备/当前会话:仅在确有本地暂存能力时使用,不等同于服务端保存。
  • 正在保存草稿:保存请求处理中,不能提前显示已保存。
  • 草稿已保存:有可靠保存确认,可显示真实保存时间或版本。
  • 保存失败:已知没有完成保存,输入仍保留时清楚说明。
  • 保存结果待确认:请求可能已生效,当前无法确定;先核查结果。
  • 有更新待保存:已有草稿,但当前新增修改还未确认保存。

一旦用户在保存过程中继续编辑,较早请求成功不应把后续修改也标为已保存。保存反馈必须对应相应的内容基准。

3.1 草稿

草稿通常用于保留工作,可在产品允许的范围内包含尚未填完或待修正内容。应明确草稿归谁、作用于哪个对象或任务、保存在哪里,以及哪些条件会影响再次使用。

草稿不应触发未经说明的审批、发布或其他正式业务后果。如果某个“保存”动作实际立即生效,就应明确告知,不能称为草稿。存储系统本身不能接受的格式仍可能阻止保存,此时应解释,而不是承诺所有无效数据都能保留。

3.2 正式提交

提交针对明确业务动作。提交前重新检查当前权限、内容基准、必需字段和业务条件;必要时展示影响预览。提交开始后防止同一动作被重复触发,但不能把整个页面永久锁住而没有状态入口。

成功后显示实际生效结果、对象或任务状态以及下一步。提交失败保留输入和明确错误;结果未知时进入核查路径,不把按钮恢复成可盲目再次提交。详见异步执行、结果核查与恢复。

3.3 自动保存

只有产品明确支持时采用。应让用户知道它保存的是草稿还是正式内容,展示真实保存状态,并提供失败处理。自动保存不能替用户确认高后果动作,也不能把浏览其他步骤视为同意提交。

4. 依赖、离开与并发

上游选项变化可能使下游内容不再有效。建议先说明影响,再按实际规则清除、标记待核查或保留为参考,不悄悄把用户填写内容改成另一业务含义。

例如用户更换项目导致可选负责人范围变化:原选择若不再有效,应明确提示并要求重新选择;如果同名人员不代表同一身份,不可自动匹配替换。字段因条件变化隐藏后,其值是否仍参与提交必须由契约明确;隐藏不能掩盖仍会生效的旧值。

离开任务查看资料后,返回应保留当前允许保留的原始输入,包括未解析或待修正部分,并重新核查对象、任务及数据基准。无变化时继续工作;有影响判断的变化时说明差异,要求重新核查或处理冲突。任务已完成时停止旧提交。

并发修改不得静默覆盖他人更新。可采用重新加载、逐项选择或其他产品实际支持的解决方式;自动合并只有在能可靠判断不冲突且保留业务一致性时使用。并列显示草稿与服务端内容时,应标明各自来源。

权限收回后,是否保留、展示或清理草稿由安全政策决定。不能以防止丢失工作为由继续展示受限数据,也不能随意推荐复制到外部文件。权限与并发详见权限变化、并发修改与保存冲突。

5. 字段关联、IME 与 FORM-SNAPSHOT 编排

规则 YUDS-110100-01(字段和错误关联)

标签、帮助、单位、必填条件和错误绑定同一稳定字段身份;占位符不承担标签。初始空白只展示必填与格式要求;已访问字段离开后或提交时验证,用户修正已报错字段后更新错误。跨步错误摘要显示问题及步骤,激活摘要项先展开目标分区,再将焦点移到可编辑字段或其错误说明;只读字段的业务错误进入任务摘要,不能要求用户修改无权改的字段。异步检查失败保留“无法检查”,不标通过。Web 关联方式参考 WAI 表单通知,原生端采用同含义的可访问描述与错误信息。

规则 YUDS-110100-02(组合输入)

文本输入区分正在组合和已提交文本,组合期间不做破坏性格式化、截断或将 Enter 候选确认解释为正式提交。字符计数的业务定义须明确;不能以底层编码单元切断汉字、组合字符或表情。IME 的“下一项/完成”只执行字段契约中声明的动作;高后果业务提交仍经独立的明确操作。Web 组合事件与 Android 文本状态均有对应机制,具体 API 不在本规范定案。依据:W3C UI Events、Android Configure text fields。

规则 YUDS-110100-03(未保存退出)

离开时分别判断无修改、仅本地修改、保存中、结果待确认和已确认草稿。无修改可返回;本地修改在可拦截的应用内导航中提供继续编辑、明确放弃、以及实际支持时的保存后离开。保存中若选择等待,只有确认对应版本后才能称已保存;允许后台继续且已证实相应查询及保留能力时提供原任务入口;缺少能力时说明当前会话和退出后的核查限制。结果待确认以核查原动作优先,放弃本地草稿不等于取消已发出的写入。关闭输入法不等于离开任务;系统杀进程、强退或断电无法保证出现离开确认,不能据此承诺不丢数据。

规则验收与反例

规则 输入与动作 可验预期 反例
YUDS-110100-01 提交跨步表单,结束日早于开始日且负责人无权选择;点错误摘要 先展开相关步骤,日期错误到可编辑字段;权限错误给获准下一步;帮助和错误可被读屏关联 只把隐藏字段标红,摘要无法定位
YUDS-110100-02 输入法组合“合同”并按 Enter 确认,再用明确提交按钮 组合不触发业务提交,文本不被截断;按钮提交当前完整值一次 Enter 同帧提交尚未确认文本;计数切断表情
YUDS-110100-03 V3 草稿保存中又产生 V4 修改;点返回并收到 V3 成功 明示 V4 仍未保存,选择继续、明确放弃 V4 或保存 V4;V3 确认不把 V4 称已保存 一个“已保存”令新修改无提示丢失
YUDS-110100-03 写入结果待确认,用户放弃本地草稿后返回 若实现具备原动作查询能力则核查;没有时保留结果未知与真实支持路径,不能显示取消成功;披露与存储按安全策略 删除本地数据就说服务端未执行

来源核查于 2026-10-19;具体校验时机、离开选择及高后果提交保护为 YUDS 推导要求。平台输入法、系统返回、读屏和进程回收验证均未执行。

5.1 结构、任务与状态

表单由有名分组、字段、组间规则、摘要与独立任务主操作组成。分组标签不替代每个字段名称。一个任务可以有多步和草稿,不能把每个字段包装成并列主操作。区分未改、草稿已改、局部检查中、验证失败、可提交、发送中、已确认、部分确认、结果未知;具体是否支持部分保存由服务能力决定,不能默认事务原子或默认部分成功。

5.2 快照与验证

提交捕获字段稳定身份、候选值、校验规则版本、权限范围及对象基准版本,验证与提交针对同一快照。客户端检查只提供及时反馈,服务端仍验证权限和数据;禁用提交按钮不构成安全控制。依赖字段变化使相关跨字段校验失效,但保留其他独立有效结论,不能用整表红色误导所有字段错误。

动态隐藏字段要有清晰规则:保留但不提交、保留并提交或清除由产品声明,不由 CSS 隐藏决定;因撤权隐藏的值不可继续凭旧快照发送。必填字段被条件隐藏时同步更新适用规则与摘要导航。若当前焦点字段被普通条件隐藏,移到触发该变化的合法入口或下一明确目标;若用户已移开则不抢焦。当前焦点撤权则转安全目标,禁止恢复受限值。

5.3 提交、未知和恢复

Enter 触发表单时先完成字段/组合控件自己的确认语义;输入法确认、选择建议、插入换行不同时提交。重复点击或 Enter 必须归于同一在途操作,禁止产生并行重复写;无服务端幂等保证时不能将超时“重试”包装为绝无重复风险。请求发送后关闭界面不等于取消远端任务;恢复时按操作身份核查,核查能力没有实现就明确未知并提供真实人工/重新读取路径。

服务端成功对快照生效,不能清除提交后产生的新草稿。冲突区分最新已确认值与本地草稿,允许查看差异和明确取舍,不自动覆盖。服务端拒绝属于所提交快照:只有当前候选、规则版本及授权范围仍匹配时,才把拒绝映射为当前字段错误。若 v1 提交后已编辑为 v2,旧拒绝保留于 v1 任务结果,不把 v2 标红、不抢 v2 编辑焦点,也不认定 v2 已通过验证。用户发起提交、仍停留本表单且当前快照仍匹配时,可按既定策略聚焦首个可修字段或错误摘要;用户已转移到另一有效任务则晚到错误只更新原任务状态,不抢焦。错误摘要按 DSP-MESSAGE-SUMMARY 定位,实时通知按 FB-LIVE 节流,不把字段、摘要、toast 三路重复高优先播报。

5.4 平台与精确夹具(未执行)

Web 原生验证、脚本验证与服务端反馈的主控策略须登记,避免同一错误连续弹两层。移动原生下一项/完成键、键盘遮挡、跨页恢复与大字体要分别测试;不能将浏览器通过视为 iOS/Android 通过。

  • FORM-SNAPSHOT-N:A/B 均有效,提交 v1,发送后编辑 A 得到 v2;v1 成功。预期 v1 确认,v2 仍脏,不能清空 A 新内容。
  • FORM-SNAPSHOT-F:提交后超时,无幂等/查询能力;再点提交。预期不自动产生重复写,明确未知及真实恢复选项,不显示失败即未执行。
  • FORM-SNAPSHOT-D:A 决定 B 显示且 B 必填;用户改 A 使 B 不适用。预期按已声明隐藏策略处理草稿/负载/校验,摘要无不可达 B 错误,不能只藏 UI 仍提交旧 B。
  • FORM-SNAPSHOT-R:发送前撤销 B 权限,预期旧快照不继续发送 B;发送后撤权,则不假称远端取消,清理披露并保留获准核查。
  • FORM-SNAPSHOT-L:错误在折叠组/下一步,用户点摘要定位后又转到另一任务;字段挂载晚到。预期不抢新任务焦点,摘要保留可重新定位入口。
  • FORM-SNAPSHOT-E:提交 v1 后继续编辑字段 A 为 v2 且焦点仍在 A;v1 服务端拒绝 A。预期 v1 结果记录拒绝,v2 不套旧错误、不被改值或抢焦,v2 仍按自身版本检查,不能假装已验证。

依据(2026-10-19 读取 W3C 官方公开正文):

  • WAI Validating Input:必填/格式解释、宽容输入、客户端不能替代服务端校验。本页的版本快照、授权竞态、草稿保留是 YUDS 推导,不宣称该教程逐条规定。
  • WAI User Notification:提供任务结果、字段关联错误与可定位摘要。它的旧示例不直接决定 YUDS 所有通告优先级;本页沿用 FB-LIVE 与 DSP-MESSAGE-SUMMARY 仲裁。
  • APG Combobox:区分 popup 类型、编辑键与候选导航。本页选择“Tab 不自动接受建议”的保守实例策略,不能写成所有 APG 变体唯一规定。

未重新完整审读 SAP 对应正文、OUDS 或 Sail 资料,不据此提升 SAP 对等等级或扩大 Sail 覆盖。所有行为是候选规范,运行、设计资产、实现与平台支持均未验收。

结构化表达式与富文本字段分别见输入组件:文本、结构化编辑与专用输入 B3-EXPR/B3-RICH,共同原稿/IME/子层取消见 B3-EDIT;子层应用不远程保存,最终提交仍由本页 FORM-SNAPSHOT 核验同一快照。

来源与边界:本组来源。

6. 表单验证案例

以下测试均为未执行:

  1. 空表单首次进入:必填及格式说明可理解,不无差别显示全部错误。
  2. 跨字段失败:错误说明指出依赖,键盘可直接定位并修正。
  3. 输入 A 后快速改为 B,A 响应晚到:界面只使用与当前值匹配的校验结果。
  4. 保存期间继续修改:较早保存成功不会将新修改标为已保存。
  5. 保存不完整草稿:按产品规则成功保留或具体解释限制,不推进业务状态。
  6. 提交时服务端拒绝:输入保留,错误层级正确,不暴露受限事实。
  7. 提交后断网:显示结果待确认并核查,不诱导重复提交。
  8. 查看其他步骤后返回:有效输入保留;任务已结束或依据变化时旧提交被阻止。
  9. 同一对象并发修改:冲突可理解,用户选择不会静默覆盖未经核查的内容。
  10. 文字放大与辅助技术:标签、错误、保存状态和提交结果均可获取,固定区域不遮挡焦点。

7. PAT-CONSENT:信息告知与明确选择

代理依用户授权采用本节为有界文档候选(2026-10-20),有界文档契约已经独立反审;本单元设计未创建、实现未验证、运行未执行。本节共同继承 CMP-STATE、原始稿/接受值/写回执区分、NAV 离开保护、CMP-LAYER 焦点、撤权清理及真实服务能力;异步事件绑定会话、对象、版本、账户与权限代次。标题、目的、状态、可用动作、原因和退出须可获取。秘密不得进入示例或普通日志。

  • 前提与输入:产品给出目的、接收方等必要告知内容,文本版本/语言、作用范围、可选/必要性质及真实记录/撤回能力。YUDS 只消费这些事实,不决定法律是否允许要求同意。
  • 状态:未作选择、查看内容、明确允许、明确拒绝/稍后、记录中、已确认记录、明确记录失败、结果未知、版本已失效;展示、选择和服务记录三个层次独立。
  • 契约:接受动作有可理解名称,选项不预选;浏览、滚到末尾、关闭或继续阅读不推定允许。必要与可选项分清,不暗绑无关目的;必要项被拒绝时说明不能继续的具体范围和安全退出,不能误称已获许可。长文保留返回与阅读位置,不能靠 hover 获得关键后果。内容/目的/范围版本在确认前变化,原选择转需重审,不能静默接受新版本。服务记录未知时保留未知,按真实查询能力核查,不声称已记录或擅自重传。撤回入口仅在产品实际支持时提供,并说明生效范围,不承诺追回既有外部数据。
  • 最小文档测试:C/v1 已选择但未提交,服务更新 v2,预期须重审且 v2 记录 0;关闭长文不产生允许;可选项拒绝不阻止无依赖基本任务;记录超时不显示法律同意已生效。读屏能辨识版本/目的、当前选择和可用退出。
  • 设计路由:D04,先做单项/多项独立目的的短任务;复杂法律签署流程另立专项,不以通用确认框替代。

相关:导航、深链接与上下文保留、系统状态、权限与恢复。