zoukankan      html  css  js  c++  java
  • 如何控制某个字段在一种情况下要验证,在另一种情况下不验证。

    效果:

    当菜单类型为目录时                                                                                    当菜单类型为菜单时                                                              当菜单类型为按钮时

     由上可知,上级菜单、菜单图标、菜单路由、页面路径在不同情况下,有时需要验证,有时不需要验证。

    上代码:

    <el-form-item label="菜单类型" prop="type">
                        <el-radio-group v-model="form.type">
                            <el-radio :label="0">目录</el-radio>
                            <el-radio :label="1">菜单</el-radio>
                            <el-radio :label="2">按钮</el-radio>
                        </el-radio-group>
                    </el-form-item>
                    <el-form-item label="上级菜单" prop="parentId" :rules="form.type!=0?rules.parentId:[]">
                        <select-tree :props="props" :options="list" v-model="form.parentId" :clearable="isClearable"
                            :accordion="isAccordion" @getValue="getValue($event)" :isDisabled="isDisabled" ref="TreeSelect">
                        </select-tree>
                    </el-form-item>
                    <el-form-item label="菜单图标" prop="icon" :rules="form.type==0?rules.icon:[]">
                        <el-input v-model="form.icon" size="small" clearable></el-input>
                    </el-form-item>
                    <el-form-item label="菜单路由" prop="path" :rules="form.type==1?rules.path:[]">
                        <el-input v-model="form.path" size="small" clearable></el-input>
                    </el-form-item>
                    <el-form-item label="页面路径" prop="page" :rules="form.type!=0?rules.page:[]">
                        <el-input v-model="form.page" size="small" clearable></el-input>
                    </el-form-item>

    要使用 Radio 组件,只需要设置v-model绑定变量,选中意味着变量的值为相应 Radio label属性的值,label可以是StringNumberBoolean

    Form 组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名即可。

    <el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">

    除了在 Form 组件上一次性传递所有的验证规则外还可以在单个的表单域上传递属性的验证规则

    <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'] }
        ]"
      >

     根据form.type值的不同来控制字段是否需要验证

    1)、当form.type的值为0时,上级菜单rules的值为空数组,即将数据模型中rules数组置空。菜单图标rules的值为rules.icon,菜单路由的rules的值置空,页面路径rules的值置空

    2)、当form.type的值为1时,上级菜单rules的值为rules.parentId菜单图标rules的值置空,菜单路由的rules的值为rules.path,页面路径rules的值为rules.page

    3)、当form.type的值为2时,上级菜单rules的值为rules.parentId菜单图标rules的值置空,菜单路由的rules的值置空,页面路径rules的值为rules.page

    注意:rules的值置空表示单个表单域没有验证规则。rules的值为rules.icon,表示该表单域只有这个验证规则。

     

     
  • 相关阅读:
    蚂蚁和木杆问题
    计算二进制中1的个数(转)
    strlen源码剖析(转)
    bashrc
    smb.conf配置文件(Centos)
    配置VNC+PuTTY+SSH Tunnel访问Linux
    标题: BASH最常见的激活模式
    KMP算法
    字符串中单词逆序
    Java中堆内存和栈内存详解
  • 原文地址:https://www.cnblogs.com/zwh0910/p/15105165.html
Copyright © 2011-2022 走看看