amis表单较验

amis在前端做表单校验,无法按业务要求做复杂的校验功能,比如多个字段关联校验等,可以使用后台较验的方式。

引用文档:

amis - 低代码前端框架

1、基本的较验:

validations配置好表达式,然后在validationErrors配置好相应的错误提示。

表达式:amis - 低代码前端框架

XML 复制代码
{
	"name": "serialno",
	"label": "流水号",
	"id": "u:6d9986f4a89a",
	"type": "input-text",
	"required": true,
	"validations": {
		"minLength": 25,
		"maxLength": 50
	},
	"validationErrors": {
		"minLength": "流水号长度不对",
        "maxLength": "流水号太长了"
	}
}

2、组合的较验:

XML 复制代码
{
  "type": "page",
  "body": {
    "type": "form",
    "api": "/amis/api/form/saveForm",
    "rules": [
      {
        "rule": "!(data.a && data.b)",
        "message": "a 和 b 不能同时有值"
      }
    ],
    "body": [
      {
        "type": "input-text",
        "name": "a",
        "label": "A"
      },
      {
        "type": "input-text",
        "name": "b",
        "label": "B"
      }
    ]
  }
}

3、后台较验:

后端api接口,在提交参数中,按业务逻辑判断多个字段,只需返回如下格式:

XML 复制代码
{
     "status": -1,
     "errors": {
        "serialno":  "流水号格式出错"   
     }
}

前端就会定位【serialno】这个字段,并提交相应的错误。

结论:结合3种较验方式,如果简单较验,直接在前端配置即可,减少后台API调用;如果复杂较验,前端无法支持,可以先将参数提交后端,检验后再返回到前端报错。

相关推荐
小木木爸9 小时前
若依框架图片预览异常:Content-Type变成application/octet-stream,前端后端谁的锅?
前端·状态模式
Leo6553510 小时前
动态 SQL(行+列) + 动态表头(前端+EasyPoi) = 完整透视报表系统
前端·sql·状态模式
无心水11 小时前
【时间利器】4、JavaScript时间处理全解:Date/moment/dayjs/Temporal
开发语言·前端·javascript·状态模式·openclaw·date/moment·dayjs/temporal
兄弟加油,别颓废了。11 小时前
解题步骤11
状态模式
cyforkk11 小时前
警惕生产环境中的“日志炸弹”:Spring MVC 异常处理最佳实践
spring·mvc·状态模式
南啸天12 小时前
Prompt—— 被 “高端术语” 包装的基础操作
prompt·状态模式
小茴香3531 天前
图片懒加载
状态模式
ZWZhangYu1 天前
【Gradio系列】使用 Gradio 快速构建对话式 AI 应用
人工智能·状态模式
青春易逝丶1 天前
状态模式
java·算法·状态模式
前端不太难2 天前
做了一个 AI 鸿蒙 App,我发现逻辑变了
人工智能·状态模式·harmonyos