ElementUI(或在Vue 3中的对应版本Element Plus)提供了一套丰富的表单定义和验证规则,这些规则可以帮助开发者轻松地对用户输入进行校验。以下是一些常见的表单定义规则及其示例:
一、基本验证规则
- 是否必填:通过 - required属性来设置字段是否为必填项。
- 示例: - { required: true, message: '用户名必填', trigger: 'blur' }
- 验证消息提示:通过 - message属性来设置验证失败时显示的提示信息。
- 示例: - { required: true, message: '请输入正确的邮箱格式', trigger: 'blur' }
- 验证触发方式:通过 - trigger属性来设置验证的触发方式,如- blur(失去焦点时触发)或- change(内容改变时触发)等。
- 示例: - { required: true, message: '请输入内容', trigger: 'change' }
二、数据类型验证
- 字符串:默认类型,无需特别指定。 
- 示例:验证用户名只能为字母和数字组合: - { pattern: /^[a-zA-Z0-9]+$/, message: '用户名只能包含字母和数字', trigger: 'blur' }
- 数字:虽然输入控件接收的是字符串,但可以通过 - transform函数或在绑定时使用- .number修饰符进行类型转换。
- 示例:使用 - .number修饰符:- <el-input v-model.number="form.age" />
- 示例:使用 - transform函数:- { type: 'number', transform(value) { return Number(value); }, message: '请输入数字', trigger: 'blur' }
- 整数和浮点数:通过 - type属性指定为- integer或- float,并可能需要使用- transform函数进行类型转换。
- 示例:验证年龄为整数: - { type: 'integer', message: '年龄必须是整数', trigger: 'blur' }
- 布尔值:通过 - type属性指定为- boolean。
- 示例:验证是否同意条款: - { type: 'boolean', message: '请勾选同意条款', trigger: 'change' }
- 数组和对象:通过 - type属性指定为- array或- object,并可以使用- defaultField或- fields进行深层验证。
{
  type: 'array',
  required: true,
  fields: {
	0: { type: 'string', required: true, message: '请输入姓名', trigger: 'blur' },
	1: { type: 'integer', required: true, message: '请输入年龄', trigger: 'blur' }
  }
}- 示例:验证用户信息数组中的每个对象都包含有效的姓名和年龄: 
三、自定义验证规则
通过validator函数可以实现自定义验证逻辑。该函数接收四个参数:规则对象rule、当前值value、回调函数callback(用于返回验证结果)以及源对象source和验证选项options(可选)。
- 示例:验证合同金额只能为数字和小数点,并保留两位小数: 
var validatePrice = (rule, value, callback) => {
  value = String(value);
  if (value && value.split(".").length > 2) {
	callback(new Error("请输入正确格式的金额")); // 防止输入多个小数点
  } else if (value && value.split(".").length == 2) {
	value = Math.round(value * Math.pow(10, 2)) / Math.pow(10, 2); // 有小数点时四舍五入保留两位小数
	this.formInline.contractMoney = value;
	callback();
  } else {
	callback();
  }
};
// 在rules中使用自定义验证规则
contractMoney: [
  { required: false, validator: validatePrice, message: "请输入正确的合同金额", trigger: "blur" }
]四、其他常用规则
- 最大长度和最小长度:通过 - max和- min属性来设置字符串或数组类型的最大和最小长度。
- 示例:验证密码长度在6到20个字符之间: - { min: 6, max: 20, message: '密码长度在6到20个字符之间', trigger: 'blur' }
- 枚举验证:通过 - enum属性来指定值必须在指定的枚举集合中。
- 示例:验证角色只能是'admin'、'user'或'guest'之一: - { type: 'enum', enum: ['admin', 'user', 'guest'], message: '请选择有效的角色', trigger: 'change' }
- 正则表达式验证:通过 - pattern属性来设置字段值必须匹配的正则表达式。
- 示例:验证邮箱格式: - { pattern: /^([a-zA-Z0-9]+[-_\.]?)+@[a-zA-Z0-9]+\.[a-z]+$/, message: '请输入正确的邮箱格式', trigger: 'blur' }
综上所述,ElementUI提供了丰富的表单定义和验证规则,可以满足大多数场景下的需求。开发者可以根据实际需要选择合适的规则进行组合和自定义,以实现高效的表单验证。
 
 
 
					
						
									
					 
					
						
									
					 
					
						
									
					 
						
									
					 
						
									
					 
						
									
					 
						
									
					 
						
									
					 
						
									
					
0条评论
点击登录参与评论