vue表单效验实现

简介: vue表单效验实现

表单效验功能

1创建表单

<el-dialog v-model="dialogFormVisible" @close="clos" >
  <el-form ref="ruleFormRef" :model="form" :rules="rules" label-width="120px" class="demo-ruleForm" :size="formSize"
          status-icon>  
  <el-form-item label="名称" :label-width="formLabelWidth" prop="name">//prop字段名称
            <el-input v-model="form.name" autocomplete="off" placeholder="请输入名称" />
          </el-form-item>
    <el-form-item label="名称" :label-width="formLabelWidth" prop="title">
            <el-input v-model="form.title" autocomplete="off" placeholder="请输入名称" />
          </el-form-item>
            </el-form>
  </el-dialog>

2获取弹窗数据

const form = reactive({
  name: '',
  title:'',
});

3进行效验

const rules = reactive({
  name: [{ required: true, message: '请输入完整内容', trigger: 'blur' }],
  title: [{ required: true, message: '请输入完整内容', trigger: 'blur' }]
});

4自定义校验

const imgA = (rule, value, callback) => {
  if (!value) {
    return callback(new Error('请上传图片'));
  }
  callback();
};
const rules = reactive({
  img: [{ required: true,validator: imgA , trigger: 'change' }],
});

5提交判断所有校验

const dialogFormVisibles = () => {
  //获取所有需要校验的值
  if (!ruleFormRef.value) return;
  ruleFormRef.value.validate((valid, fields) => {
   //判断是否有值
    if (valid) {
      console.log('submit!');
      dialogFormVisible.value = false;
      ElMessage({
        message: '提交成功',
        type: 'success',
      });
    } else {
      console.log('error submit!', fields);
      ElMessage({
        message: '请将内容输入完整',
        type: 'warning',
      });
      console.log(ruleFormRef.value);
    }
  });
};

6关闭弹窗清空校验数据

const ruleFormRef = ref();
const clos = () => {
  ruleFormRef.value.resetFields();
};


相关文章
|
3天前
|
JavaScript
vue消息订阅与发布
vue消息订阅与发布
|
3天前
|
JavaScript
vue尚品汇商城项目-day07【vue插件-50.(了解)表单校验插件】
vue尚品汇商城项目-day07【vue插件-50.(了解)表单校验插件】
12 4
|
3天前
|
JavaScript
vue尚品汇商城项目-day07【51.路由懒加载】
vue尚品汇商城项目-day07【51.路由懒加载】
13 4
|
4天前
|
JavaScript 前端开发
Vue学习笔记8:解决Vue学习笔记7中用v-for指令渲染列表遇到两个问题
Vue学习笔记8:解决Vue学习笔记7中用v-for指令渲染列表遇到两个问题
|
3天前
|
JavaScript
vue尚品汇商城项目-day07【vue插件-54.(了解)生成二维码插件】
vue尚品汇商城项目-day07【vue插件-54.(了解)生成二维码插件】
9 2
|
4天前
|
JavaScript 前端开发 API
Vue学习笔记7:使用v-for指令渲染列表
Vue学习笔记7:使用v-for指令渲染列表
|
JavaScript 测试技术 容器
Vue2+VueRouter2+webpack 构建项目
1). 安装Node环境和npm包管理工具 检测版本 node -v npm -v 图1.png 2). 安装vue-cli(vue脚手架) npm install -g vue-cli --registry=https://registry.
1039 0
|
5天前
|
JavaScript
vue组件中的插槽
本文介绍了Vue中组件的插槽使用,包括单个插槽和多个具名插槽的定义及在父组件中的使用方法,展示了如何通过插槽将父组件的内容插入到子组件的指定位置。
|
4天前
|
JavaScript 前端开发 IDE
Vue学习笔记5:用Vue的事件监听 实现数据更新的实时视图显示
Vue学习笔记5:用Vue的事件监听 实现数据更新的实时视图显示
|
4天前
|
JavaScript 前端开发 API
Vue学习笔记4:用reactive() 实现数据更新的实时视图显示
Vue学习笔记4:用reactive() 实现数据更新的实时视图显示
下一篇
无影云桌面