原生Html 引入element UI + vue3 表单校验设置

效果:

提交时,检验结果展示 

html源码

<!DOCTYPE html>
<html>
<!--带搜索输入框下拉弹窗
-->
<head>
  <meta charset="UTF-8">
  <!-- import Vue before Element -->
  <script src="../js/vue3.3.8/vue.global.js"></script>
  <link rel="stylesheet" href="../js/elementPlus/index.css">
  <script src="../js/elementPlus/index.full.js"></script>
  <title></title>

</head>
<body>
<div id="app">
  <!-- 双大括号语法,可以直接拿到下面data中return 里面的数据 -->

  <el-button type="success" @click="onsubmit">保存按钮</el-button>

  <el-form ref="ruleFormRef" :model="formData" :rules="rules" label-width="120px" class="demo-ruleForm"
           status-icon>
    <div class="section-header">
      商品信息
      <el-checkbox label="自动" size="large" checked></el-checkbox>
    </div>
    <el-row>
      <el-col :span="9">
        <el-form-item label="商品名称" prop="name">
          <el-input placeholder="商品名称长度必须小于20" v-model="formData.name"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="9">
        <el-form-item label="商品编码" prop="code">
          <el-input placeholder="系统自动生成" v-model='formData.code'></el-input>
        </el-form-item>
      </el-col>
    </el-row>
    <el-divider></el-divider>

  </el-form>

</div>
</body>

<script>
  const {createApp, ref, reactive} = Vue
  const {ElMessageBox} = ElementPlus

  const app = createApp({
    setup() {
      const message = ref('Hello vue!')
      const formData = ref({name: '', code: ''})
      const rules = reactive({
        name: [{required: true, trigger: 'blur'}],
        code: [{required: true, trigger: 'blur'}],
      })
      const onsubmit = (e) => {
        console.log(vm.$refs.ruleFormRef)
        vm.$refs.ruleFormRef.validate(valid => {
          if (valid) {
            alert('校验成功')
          } else {
            alert('失败')
          }
        })
      }

      return {
        message, formData, rules, onsubmit,
        change: (e) => {
          console.log('修改值', e)
        }
      }
    },
    created() {
    },
    mounted() {
      console.log('|--mounted', this)
    }
  })
  app.use(ElementPlus)
  const vm = app.mount('#app')
</script>
</html>

 这里一开始获取ruleFormRef这个表单对象,用this获取不到

 const vm = app.mount('#app') 

因为这句话,最后歪打正着,通过vm这个实例,获取:vm.$refs.ruleFormRef.validate()得到检验结果。

相关:

在vue3项目嵌套 导入老项目 jQuery项目,减少重复开发-CSDN博客 

相关推荐

  1. vue3+element-plus 校验和循环form校验

    2023-12-15 08:34:03       26 阅读
  2. vue3参数校验+正则表达式

    2023-12-15 08:34:03       31 阅读
  3. 设计模式】使用策略模式优化校验逻辑

    2023-12-15 08:34:03       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-15 08:34:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-15 08:34:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-15 08:34:03       82 阅读
  4. Python语言-面向对象

    2023-12-15 08:34:03       91 阅读

热门阅读

  1. 网络安全渗透测试的相关理论和工具

    2023-12-15 08:34:03       44 阅读
  2. 向量、矩阵、数组、向量空间

    2023-12-15 08:34:03       62 阅读
  3. C#调用zlib1.dll错误排查

    2023-12-15 08:34:03       46 阅读
  4. 二叉树中的中序遍历、反向遍历和逆序

    2023-12-15 08:34:03       54 阅读
  5. Leetcode -2

    2023-12-15 08:34:03       52 阅读
  6. 项目中使用临时文件夹或获取文件资源路径

    2023-12-15 08:34:03       62 阅读
  7. Numpy库

    2023-12-15 08:34:03       69 阅读
  8. uniapp微信小程序下载保存图片流到本地,base64

    2023-12-15 08:34:03       77 阅读
  9. MSSQL存储过程的功能和用法

    2023-12-15 08:34:03       63 阅读