赞
踩
在 el-form-item 标签上
- <el-form-item label="姓名"
- prop='name'
- :rules="{ required: true, message: '不能为空'}"
- >
- save() {
- this.$refs.formRef.validate((valid) => {
- if (valid) {
- alert('通过了表单校验,可以保存啦!')
- }
- });
- }
- this.$refs.formRef.validateField('name',err => {
- if(!err){
- alert('姓名校验通过啦!')
- }
- })
- this.$nextTick(() => {
- this.$refs.formRef.clearValidate();
- });
若只有一条校验规则,绑定对象即可
:rules="{ required: true, message: '不能为空'}"
若有多条校验规则,则绑定对象数组
- :rules="[
- { required: true, message: '请输入活动名称', trigger: 'blur' },
- { type: 'date', required: true, message: '请选择时间', trigger: 'change' },
- { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'change' },
- { pattern: /^[\u4e00-\u9fa5]{0,}$/, message: '只能输入汉字', trigger: 'change' }
- ]"
{ validator: checkAge, trigger: 'blur' }
- const checkAge = (rule, value, callback) => {
- if (value < 18) {
- callback(new Error('必须年满18岁'));
- } else {
- callback();
- }
- }
- rules: {
- principalopen: [
- {
- // 是否必填 没有这个就没有前面红点
- required: true,
- // 自定义验证规则
- validator: checkAge,
- // 触发事件
- trigger: 'blur'
- }
- ]
- },
触发校验后,若校验失败,提示信息会在表单元素下方显示
trigger属性——校验触发时机
trigger属性用于指定校验触发时机,但是并不是所有的验证项都可以被这样触发
string: 字符串(默认值)
number: 数字
boolean: 布尔值
method: 函数
regexp: 正则表达式
integer: 整数
float: 浮点数
array: 数组
object:对象
enum: 枚举类型,可以参考百度资料-枚举类型
date: 日期类型
url: URL类型,如 https://www.baidu.com/
hex: 文件格式类型,如 :020000040000FA
email: 邮箱类型,如 3652452@qq.com
any: 任意类型
:rules="[{ pattern: /^[\u4e00-\u9fa5]{0,}$/, message: '只能输入汉字', trigger: 'change' }]"
添加 :inline="true" 即可
<el-form ref="formRef" :model="formData" label-width="80px" size="mini" :inline="true">
所有表单元素,都要使用 el-form-item 标签包裹
<el-input v-model="formData.name" style="width: 200px"></el-input>
<el-input type="textarea" v-model="formData.remark"></el-input>
- <el-select v-model="formData.gender" placeholder="请选择">
- <el-option
- v-for="item in genderList"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- ></el-option>
- </el-select>
- <el-radio-group v-model="formData.gender">
- <el-radio v-for="(item,index) in genderList" :key="index" :label="item.label"></el-radio>
- </el-radio-group>
特别注意:因多选表单元素的值为数组,所以必须初始化其值为 []
- formData: {
- hobby: []
- },
- <el-checkbox-group v-model="formData.hobby">
- <el-checkbox v-for="item in hobbyList" :key="item.value" :label="item.value">{{item.label}}</el-checkbox>
- </el-checkbox-group>
- hobbyList: [
- {
- label: "编程",
- value: '1'
- },
- {
- label: "读书",
- value: '2'
- },
- ]
<el-switch v-model="formData.show"></el-switch>
- <el-date-picker
- :picker-options="pickerOptions"
- value-format="yyyy-MM-dd"
- v-model="formData.birthday"
- type="date"
- placeholder="选择日期">
- </el-date-picker>
- pickerOptions: {
- disabledDate(time) {
- //此条为设置禁止用户选择今天之前的日期,包含今天。
- // return time.getTime() <= (Date.now()-(24 * 60 * 60 * 1000));
- //此条为设置禁止用户选择今天之前的日期,不包含今天。
- return time.getTime() <= (Date.now()-(24 * 60 * 60 * 1000));
- }
- },
selectableRange限制可选时间范围
- <el-time-picker v-model="formData.time" placeholder="选择时间"
- value-format="HH:mm:ss"
- :picker-options="{selectableRange: '18:30:00 - 20:30:00'}"
- >
unlink-panels 用于解除左右日期面板的联动
- <el-date-picker
- unlink-panels
- value-format="yyyy-MM-dd"
- v-model="formData.validDate"
- type="daterange"
- range-separator="至"
- start-placeholder="开始日期"
- end-placeholder="结束日期">
- </el-date-picker>
更多常用正则表达式见链接 正则表达式 RegExp【详解】_朝阳39的博客-CSDN博客
原文:Element UI 表单【详解】-- 表单校验,表单元素排列在一行,常用表单元素等_el-form表单如何让个别表单项属于行内_朝阳39的博客-CSDN博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。