赞
踩
1. element表单校验在项目中很常见,基本用法大家可以参照官网。不过我边对基本使用做下强调和说明。
- <template>
- <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
- <el-form-item label="名称" prop="name">
- <el-input v-model="ruleForm.name"></el-input>
- </el-form-item>
- </el-form>
- </template>
- <script>
- export default {
- data() {
- return {
- ruleForm: {
- name: '',
- },
- rules: {
- name: [
- { required: true, message: '请输入活动名称', trigger: 'blur' },
- { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
- ]
- }
- };
- },
- }
- </script>
1. el-form-item 标签一定要加props,而且要和校验绑定的值一致,也就是 ruleForm 里面的值和 rules 里面绑定的校验名称要一致。而 props 可以理解为建立两者的连接。
2.只要保证 props 和 rules 里面相对应,它校验的值就是 ruleForm 的相对应的值,所以上述例子中的 <el-input v-model="ruleForm.name"></el-input> 可以是任何元素,除了表单元素之外,还可以是一个 div 文本等等。
- <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
- <el-form-item label="名称" prop="name">
- <div>{{ruleForm.name}}</div>
- </el-form-item>
- </el-form>
2. 循环表单校验
- <template>
- <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
- <div v-for="(item, index) in ruleForm.list" :key="index">
- <el-form-item label="名称" :prop="`list.${index}.name`" :rules="rules.name">
- <el-input v-model="item.name"></el-input>
- </el-form-item>
- </div>
- <el-form-item>
- <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
- <el-button @click="resetForm('ruleForm')">重置</el-button>
- </el-form-item>
- </el-form>
-
- </template>
-
- <script>
- export default {
- name: 'App',
- components: {
-
- },
- data() {
- return {
- ruleForm: {
- list: [
- { name: '' },
- { name: '' },
- { name: '' }
- ]
- },
- rules: {
- name: [
- { required: true, message: '请填写名称', trigger: 'change' },
- ],
- },
-
- }
- },
- 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();
- }
- }
- }
- </script>
注意:1.每个 el-form-item 都要加 rules,而 props采用 index的形式。
另外还有一种实现方法就是循环整个 form 表单,这样就可以每个表单单独做校验,就是我们的普通股用法,至于使用哪种方法,大家可以视业务场景而定。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。