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调用;如果复杂较验,前端无法支持,可以先将参数提交后端,检验后再返回到前端报错。

相关推荐
火云代理1 天前
同一个网站,有的网络能打开、有的打不开?认识 IPv4 与 IPv6 的访问差异
服务器·网络·网络协议·tcp/ip·测试工具·php·状态模式
FungLeo3 天前
成为全栈·Vue 管理后台篇·分页只显示第一页:从接口total 定位到前端修复
前端·vue.js·状态模式·分页·naive ui·服务端分页·前端问题排查
严肃小白兔5 天前
TanStack Router 更新构建工具链:Node.js 兼容性、路由分割与前端工程实践
前端·node.js·状态模式
大江东去浪淘尽千古风流人物14 天前
【HexVIO】DSP卸载双目惯性VIO:Hexagon向量化前端与单帧融合调度深度解析
前端·状态模式·slam·dsp·vio·hexagon·移动端加速
吃一碗粉只付一碗钱15 天前
12-给SPA友好的401和403响应
c#·状态模式
sunlifenger15 天前
嵌入式部署,解锁张家港智慧灯杆的“极简组网”密码
科技·状态模式
上火的金鱼妹16 天前
关于多进程sse连接通知的实战
javascript·状态模式·sse
阿俊-全栈开发16 天前
LikeShop 小程序商城首页可配置弹窗的设计与实现(Java + uni-app)
小程序·状态模式·likeshop·likeshop开源商城
lingyubb17 天前
配音工具怎么选?从 TTS 合成链路看 6 个可量化参数
状态模式