vue2使用elform的rules校验的示例详解
作者:攻城狮-申
这篇文章主要介绍了vue2使用elform的rules校验的示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
在使用vue2开发项目的时候使用element组件的el-form大多数情况都需要用到必填项校验
举个栗子:
<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-item label="活动区域" prop="region"> <el-select v-model="ruleForm.region" placeholder="请选择活动区域"> <el-option label="区域一" value="shanghai"></el-option> <el-option label="区域二" value="beijing"></el-option> </el-select> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button> <el-button @click="resetForm('ruleForm')">重置</el-button> </el-form-item> </el-form> <script> export default { data() { return { ruleForm: { name: '', region: '', }, rules: { name: [ { required: true, message: '请输入活动名称', trigger: 'blur' }, { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } ], region: [ { required: true, message: '请选择活动区域', trigger: 'change' } ], } }; }, methods: { submitForm(ruleForm) { this.$refs['ruleForm'].validate((valid) => { if (valid) { alert('submit!'); } else { console.log('error submit!!'); return false; } }); }, resetForm(ruleForm) { this.$refs[ruleForm].resetFields(); } } } </script>
这里我们的表单里有‘活动名称(输入框)’和‘活动区域(下拉框)’两个选项,我们在<el-form>这里写了
:rules="rules"
这就代表我们这个el-form表单的校验是根据rules来的,而在下面<el-form-item>里我们写了'prop="xxx"',这里的属性为rules里需要校验的字段名,也就是data里定义的
rules: { name: [ { required: true, message: '请输入活动名称', trigger: 'blur' }, { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } ], region: [ { required: true, message: '请选择活动区域', trigger: 'change' } ], }
*这里需要注意的是我们prop里的字段和rules里的字段名一定要对应上,这样el-form表单的校验才会生效
然后我们在点击确定的时候调方法进行校验即可
this.$refs['ruleForm'].validate((valid) => { if (valid) { alert('submit!'); } else { console.log('error submit!!'); return false; } });
这里的[ruleForm]要跟上面el-form表单的ref的命名保持一致
更新:
如果遇到需要动态加校验
我们只需要在el-form-item这里加上
:rules="定义的变量 ? rules.name : []"
像这样
<el-form-item label="活动名称" prop="name" :rules="定义的变量 ? rules.name: []"> <el-input v-model="ruleForm.name"></el-input> </el-form-item>
这个定义的变量是用来动态判断是否需要加校验的,这个值你只需要放在你需要判断是否需要加校验的地方就行了
*这里有个点需要注意,单独加的校验有可能会在你输入/选择选项之后还是提示校验未通过
这个时候我们需要在输入框/下拉框的change事件里再单独执行一下校验就可以了,比如像这样:
change方法名() { this.$refs.ruleForm.validateField('name'); // 需要判断的那个选项的prop,要对应rules里定义的值 },
这样就实现了对一个选项动态加判断校验
附加element的官网地址:Element - The world's most popular Vue UI framework
到此这篇关于关于vue2使用elform的rules校验的文章就介绍到这了,更多相关vue2 elform rules校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!