Zion表单必填需显式声明required: true,仅UI标注无效;条件必填用if-then或validator自定义;错误文案通过message字段定制并依赖组件支持。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在用函子Zion编写表单需求时,若要求某字段必填,必须在需求文档中明确声明该字段的校验规则与交互反馈逻辑,否则Zion生成的代码默认不包含服务端或前端必填校验,提交时可能静默通过空值。
字段级必填声明写法
在Zion需求文档的字段定义区块中,为对应字段添加 【required: true】 键值对。例如:phone: { type: "string", required: true, label: "手机号" }。这会触发Zion在生成表单组件时自动注入前端校验和后端参数校验逻辑。
不写 【required: true】 仅靠UI文字标注“(必填)”无效——Zion不会解析中文提示语,也不会据此生成校验代码。
跨字段联动必填场景
方法一:用 if-then 结构声明条件必填
当“是否开具发票”选“是”时,“发票抬头”才需必填。在Zion需求中写成:invoice_title: { type: "string", if: { field: "invoice_enabled", equals: true }, required: true }。Zion据此生成带条件判断的校验函数。
方法二:用 validator 自定义规则
对于更复杂的依赖关系,如“身份证号与出生日期需同时填写或同时为空”,直接写 validator 函数体:validator: "(v, data) => !data.id_card === !data.birth_date"。Zion会将该表达式编译进表单提交前的校验链。
错误提示文案定制
第一步:在字段定义中加入 message 字段
例如:email: { type: "string", required: true, message: "邮箱不能为空,请输入有效邮箱地址" }。Zion会把该文案注入到表单控件的 error 属性中,前端组件可直接读取渲染。
第二步:确保 UI 组件库支持 message prop 透传
若使用 Ant Design 的 Form.Item,Zion 生成的 JSX 默认已绑定 help={error?.message} 和 validateStatus={error ? "error" : ""};但若用自研组件,需提前在 Zion 配置中注册该组件的 error 渲染协议,否则 message 字段会被忽略。











