您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax |

Vue之ElementUI Form表单校验

51自学网 2022-05-02 21:33:40
  javascript

表单校验是前端开发过程中最常用到的功能之一,根据个人的工作经验总结在此对表单校验功能的基础用法进行整理说明。

以下是form的demo

el-form :model="dynamicValidateForm" ref="dynamicValidateForm" label-width="100px" class="demo-dynamic">  <el-form-item    prop="email"    label="邮箱"    :rules="[      { required: true, message: '请输入邮箱地址', trigger: 'blur' },      { type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }    ]"  >    <el-input v-model="dynamicValidateForm.email"></el-input>  </el-form-item>  <el-form-item    v-for="(domain, index) in dynamicValidateForm.domains"    :label="'域名' + index"    :key="domain.key"    :prop="'domains.' + index + '.value'"    :rules="{      required: true, message: '域名不能为空', trigger: 'blur'    }"  >    <el-input v-model="domain.value"></el-input><el-button @click.prevent="removeDomain(domain)">删除</el-button>  </el-form-item>  <el-form-item>    <el-button type="primary" @click="submitForm('dynamicValidateForm')">提交</el-button>    <el-button @click="addDomain">新增域名</el-button>    <el-button @click="resetForm('dynamicValidateForm')">重置</el-button>  </el-form-item></el-form><script>  export default {    data() {      return {        dynamicValidateForm: {          domains: [{            value: ''          }],          email: ''        }      };    },    methods: {      submitForm(formName) {        this.$refs[formName].validate((valid) => {          if (valid) {            alert('submit!');          } else {            console.log('error submit!!');            return false;          }        });      },      resetForm(formName) {        this.$refs[formName].resetFields();      },      removeDomain(item) {        var index = this.dynamicValidateForm.domains.indexOf(item)        if (index !== -1) {          this.dynamicValidateForm.domains.splice(index, 1)        }      },      addDomain() {        this.dynamicValidateForm.domains.push({          value: '',          key: Date.now()        });      }    }  }</script>

首先对el-form标签中的几个关键属性进行说明

  • ref: 当前表单的唯一标识
  • model: 表单绑定的对象
  • rules: 字段校验规则

rules字段用来定义各个字段具体的校验规则,用法请查阅开篇的demo示例,其中required标识字段是否必填,message为校验提示语,trigger为单个校验触发方式;也可以通过validator字段自定义校验规则,方法validateProductName中对商品名称做了判空及长度校验,需要注意的是所有的条件分支都要做callback处理,否则校验可能会导致异常。

1、重置表单

调用表单重置方法this.$refs.dynamicValidateForm.resetFields()实现。

当然像datetimerange类型的日期控件是无法通过该方法进行重置,必须手动重置绑定的字段。

2、 清除校验提示语

调用方法this.$refs.dynamicValidateForm.clearValidate()实现。

如果仅需要清除单个控件的提示语,只要把该控件对应的prop属性值作为参数传入即可。

还有另外一种方式就是在该控件对应的el-form-item标签中增加ref属性值,然后调用clearValidate方法。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持wanshiok.com。


用JavaScript实现轮播图效果
VUE实现token登录验证
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1