关于vue2使用elform的rules校验

在使用vue2开发项目的时候使用element组件的el-form大多数情况都需要用到必填项校验
举个栗子:


  
    
  
  
    
      
      
    
  
  
    立即创建
    重置
  

这里我们的表单里有‘活动名称(输入框)’和‘活动区域(下拉框)’两个选项,我们在这里写了

:rules="rules"

这就代表我们这个el-form表单的校验是根据rules来的,而在下面里我们写了'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 : []"

像这样

  
    
  

这个定义的变量是用来动态判断是否需要加校验的,这个值你只需要放在你需要判断是否需要加校验的地方就行了

*这里有个点需要注意,单独加的校验有可能会在你输入/选择选项之后还是提示校验未通过

这个时候我们需要在输入框/下拉框的change事件里再单独执行一下校验就可以了,比如像这样:

change方法名() {
            this.$refs.ruleForm.validateField('name'); // 需要判断的那个选项的prop,要对应rules里定义的值
        },

这样就实现了对一个选项动态加判断校验

附加element的官网地址:Element - The world's most popular Vue UI framework

你可能感兴趣的:(关于vue2使用elform的rules校验)