vue element el-form 多级嵌套验证的实现示例

yizhihongxing

针对“vue element el-form 多级嵌套验证的实现示例”的完整攻略,我给您提供以下步骤:

步骤一:配置element-ui

首先需要在项目中引入Element-UI组件库,并按照文档要求进行全局和局部组件的注册,具体步骤可以参考官方文档:https://element.eleme.cn/#/zh-CN/component/installation

步骤二:准备你的表单数据

定义好表单需要验证的数据结构,这里给出一个例子:

formData: {
  name: '',
  age: '',
  job: {
    title: '',
    salary: ''
  }
}

这个数据结构包含三个属性,job属性也是一个对象,有两个属性。在满足某些条件时需要使用到这样的多级嵌套。

步骤三:定义验证规则

在数据结构准备好之后,需要定义验证规则,结合 Element-UI 的表单校验方法进行校验,验证规则也需要满足多级嵌套验证。例如:

rules: {
  name: [
    { required: true, message: '请输入名称', trigger: 'blur' }
  ],
  age: [
    { required: true, message: '请输入年龄', trigger: 'blur' }
  ],
  'job.title': [
    { required: true, message: '请输入职位', trigger: 'blur' }
  ],
  'job.salary': [
    { required: true, message: '请输入薪资', trigger: 'blur' }
  ]
}

上述示例中定义了四个属性的验证规则,其中job.titlejob.salary需要使用字符串引用以表明多级嵌套的层级关系。

步骤四:在表单中设置ref属性,用于在代码中引用表单

设置表单ref属性,可以在代码中直接引用表单实例进行表单校验。

<el-form ref="form" :model="formData" :rules="rules">
  <el-form-item label="名称" prop="name">
    <el-input v-model="formData.name"></el-input>
  </el-form-item>
  <el-form-item label="年龄" prop="age">
    <el-input v-model="formData.age"></el-input>
  </el-form-item>
  <el-form-item label="职位">
    <el-form-item label="职称" prop="job.title">
      <el-input v-model="formData.job.title"></el-input>
    </el-form-item>
    <el-form-item label="薪资" prop="job.salary">
      <el-input v-model="formData.job.salary"></el-input>
    </el-form-item>
  </el-form-item>
</el-form>

在el-form标签中,设置ref属性,并绑定数据模型formData和验证规则rules。

步骤五:在代码中使用表单校验方法

表单校验方法可以在表单实例中直接调用,例如:

this.$refs.form.validate((valid) => {
  if (valid) {
    alert('验证通过')
  } else {
    alert('表单校验失败')
    return false
  }
})

调用$refs.form.validate()方法即可进行表单验证,回调函数中的参数valid表示表单是否验证通过。

示例一

下面是一个验证手机号和邮箱的示例代码:

<el-form ref="form" :model="formData" :rules="rules">
  <el-form-item label="用户名" prop="username">
    <el-input v-model="formData.username"></el-input>
  </el-form-item>
  <el-form-item label="手机号" prop="phone">
    <el-input v-model="formData.phone"></el-input>
  </el-form-item>
  <el-form-item label="邮箱" prop="email">
    <el-input v-model="formData.email"></el-input>
  </el-form-item>
</el-form>
export default {
  data () {
    return {
      formData: {
        username: '',
        phone: '',
        email: '',
      },
      rules: {
        username: [
          { required: true, message: '请输入用户名', trigger: 'blur' }
        ],
        phone: [
          { required: true, message: '请输入手机号', trigger: 'blur' },
          { pattern: /^[1][3,4,5,7,8][0-9]{9}$/, message: '手机号格式不正确', trigger: 'blur' }
        ],
        email: [
          { required: true, message: '请输入邮箱', trigger: 'blur' },
          { type: 'email', message: '邮箱格式不正确', trigger: 'blur' }
        ]
      }
    }
  },
  methods: {
    submitForm() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          alert('验证通过')
        } else {
          alert('表单校验失败')
          return false
        }
      })
    }
  }
}

上述代码中,需要验证的数据结构包括usernamephoneemail三个属性,也就是单层验证。验证规则包括每个属性需要经过的验证过程。调用表单校验方法$refs.form.validate(),验证表单的填写规范并给出提示信息。

示例二

下面是一个深层次多级嵌套验证的示例代码:

<el-form ref="form" :model="formData" :rules="rules">
  <el-form-item label="工作信息">
    <el-form-item label="公司" prop="company">
      <el-input v-model="formData.company"></el-input>
    </el-form-item>
    <el-form-item label="地址">
      <el-form-item label="省份" prop="address.province">
        <el-input v-model="formData.address.province"></el-input>
      </el-form-item>
      <el-form-item label="城市" prop="address.city">
        <el-input v-model="formData.address.city"></el-input>
      </el-form-item>
      <el-form-item label="街道" prop="address.street">
        <el-input v-model="formData.address.street"></el-input>
      </el-form-item>
    </el-form-item>
  </el-form-item>
</el-form>
export default {
  data () {
    return {
      formData: {
        company: '',
        address: {
          province: '',
          city: '',
          street: '',
        }
      },
      rules: {
        company: [
          { required: true, message: '请输入公司名称', trigger: 'blur' }
        ],
        'address.province': [
          { required: true, message: '请输入省份', trigger: 'blur' }
        ],
        'address.city': [
          { required: true, message: '请输入城市', trigger: 'blur' }
        ],
        'address.street': [
          { required: true, message: '请输入街道', trigger: 'blur' }
        ]
      }
    }
  },
  methods: {
    submitForm() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          alert('验证通过')
        } else {
          alert('表单校验失败')
          return false
        }
      })
    }
  }
}

在这个多级嵌套示例中,验证数据结构包括companyaddress.provinceaddress.cityaddress.street四个属性,也就是深层次的嵌套验证。而验证规则也相应地进行了设置。在调用表单校验方法时,进行表单的验证并给出消息提示。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue element el-form 多级嵌套验证的实现示例 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JavaScript与DOM组合动态创建表格实例

    下面我来详细讲解如何使用JavaScript与DOM组合动态创建表格实例。 简介 在Web开发中,表格是数据展示的常用形式之一,但是在页面中手动编写表格代码比较繁琐,因此我们可以使用JavaScript与DOM结合创建表格。 创建表格的步骤 1.创建表格元素 首先需要使用JavaScript创建表格元素,可以使用document.createElement方…

    JavaScript 2023年6月10日
    00
  • 深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例

    深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例 在JavaScript中,编码与解码字符串是非常常见的操作。对于URL、HTML等特殊字符的处理,我们通常会使用escape()、encodeURI()、encodeURIComponent()这几个函数,它们虽然都是编码函数,但是处理的范围和方式各不相同…

    JavaScript 2023年5月19日
    00
  • 正则表达式在js前端的15个使用场景梳理总结

    这篇攻略将介绍正则表达式在JavaScript前端开发中的15个常见使用场景,帮助读者了解如何在实践中灵活运用正则表达式,提高开发效率。 1.验证邮箱地址 在开发过程中,我们需要验证用户输入的邮箱地址是否合法。以下是验证邮箱地址的正则表达式: /^([a-zA-Z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/ 示例代码:…

    JavaScript 2023年6月10日
    00
  • 详解如何较好的使用js

    如何较好地使用 JavaScript 在网站开发中,JavaScript 是一个重要的工具。下面,我将分享一些如何最好地使用 JavaScript 的攻略,以便您可以将 JavaScript 发挥到最大的作用。 熟练掌握 JavaScript 语言基础 在编写 JavaScript 代码之前,首先需要了解基础语法,如数据类型、变量和运算符等。另外,熟练掌握流…

    JavaScript 2023年6月11日
    00
  • 判断JavaScript中的两个变量是否相等的操作符

    判断JavaScript中的两个变量是否相等的操作符一般有两种:==和===。它们的区别在于比较时是否考虑数据类型。以下是完整的操作攻略: ==操作符 ==操作符会自动转换数据类型,再进行比较。如果有一个操作数是字符串类型,另一个是数字类型,操作符会转换字符串类型为数字类型。如果两个操作数都是引用类型,则比较的是它们的引用。下面是例子: console.lo…

    JavaScript 2023年6月10日
    00
  • JavaScript分秒倒计时器实现方法

    请看下面的详细讲解。 JavaScript分秒倒计时器实现方法 在网站或页面中经常需要倒计时功能,这就需要实现一个倒计时器。本文将介绍如何使用 JavaScript 实现一个分秒倒计时器。 实现方法 1. HTML 部分 首先我们来创建一个倒计时器标签。在 HTML 部分,我们使用 <div> 标签来放置倒计时器的数字。同时在 <head&…

    JavaScript 2023年6月11日
    00
  • 基于javascript中的typeof和类型判断(详解)

    基于Javascript中的typeof和类型判断(详解) typeof typeof 运算符可以用来判断一个变量的数据类型,语法如下: typeof operand 其中 operand 是需要判断的变量或值。typeof 运算符会返回以下几种类型的字符串值: “undefined”:如果 operand 未定义或未声明 “boolean”:如果 oper…

    JavaScript 2023年5月19日
    00
  • assert()函数用法总结(推荐)

    当我们编写程序时,为了保证程序的正常运行,需要对程序中的各个部分进行测试和验证。而assert()函数就是一个非常常用的测试和验证工具。 assert()函数介绍 assert()函数是C语言头文件中的一种调试工具,包含于库中。其作用是,如果传入的参数为0(即假),则表达式为false,会触发assert()函数,程序将会停止运行。assert()函数用于检…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部