前端基础学习-表单项的多层校验

在项目开发中遇到需要对两个表单项进行一起校验,这个时候可以把两个表单项同时放在一个表单项下面

效果如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里的校验规则是最低金额与最高金额不可同时为空,且最低金额必须小于最高金额

代码部分

html

         <!-- 金额范围校验 -->
         <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="110px" style="width: 85%;">
          <el-form-item label="金额范围" prop="price">
            <el-col :span="11">
              <el-form-item prop="minPrice">
                <el-input v-model="ruleForm.minPrice" size="mini" placeholder="最低金额" maxlength="20" @change="checkMinPrice"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="1">
              <span></span>
            </el-col>
            <el-col :span="11">
              <el-form-item prop="maxPrice">
                <el-input v-model="ruleForm.maxPrice" size="mini" placeholder="最高金额" maxlength="20"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="1">
              <span></span>
            </el-col>
          </el-form-item>
         </el-form>

在el-form-item下添加el-form-item

data部分

data () {
    let that = this
    var checkPrice = (rule, value, callback) => {
      if (!that.ruleForm.minPrice && !that.ruleForm.maxPrice) {
        return callback(new Error('最低金额与最高金额不能同时为空'))
      }
      if (that.ruleForm.minPrice && that.ruleForm.maxPrice && parseFloat(that.ruleForm.minPrice) >= parseFloat(that.ruleForm.maxPrice)) {
        return callback(new Error('最低金额必须要比最高金额低哦'))
      }
      callback()
    }
    return {
      rules: {
        price: [
          {
            validator: checkPrice, required: true, trigger: 'blur'
          }
        ]
      }
    }

注意这里的校验规则要在return外

其中具体的最低金额与最高金额的表单项可依旧如普通的表单一样校验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值