【实现Element表单区间输入框校验效果】

思路:两个输入框组合而成的,绑定的是数组的第一项和第二项、搭配自定义正则从而实现的区间输入框

效果
在这里插入图片描述
在这里插入图片描述
核心代码

在这里插入图片描述

页面部分传递给组件的数据上部分核心之外还需给组件一个默认值

dataform: {
    interval: [],
  },
interval数组的第一项绑定的第一个区间,第二项绑定的第二个区间
validator: interval,正则校验

---------------------------------------------------
/**

 * 区间正则匹配
 * @param {*} rule
 * @param {*} value
 * @param {*} callback
 */
export function interval(rule, value, callback) {
    let flag = value.filter(item => item).length == 2 //判断是否都有值
    let flag2 = parseInt(value[0]) <= parseInt(value[1]) //判断最小值是否小于最大值
    if (flag && flag2) {
        return callback();
    }
    if (!flag) {
        callback(new Error('区间值不能为空'))
    } else {
        if (flag2) {
            callback()
        } else {
            return callback(new Error('最小值不能大于最大值'))
        }
    }
}


---------------------------------------------------
组件 部分
  <!-- 区间输入框 -->
              <div class="interval" v-if=" item.type ==='interval'">
                <el-input
                  :type="item.intervaltype"
                  :style="item.Input_unit?'width:25%;margin-right: 5px':'width:100%'"
                  :placeholder="item.placeholder || '请输入' + item.name"
                  :disabled="item.disabled"
                  :rows="item.rows||3"
                  :oninput="item.oninput||''"
                  v-model.trim="dataform[item.prop][0]"
                ></el-input>
                <span>{{item.Input_unit||''}}</span>
                <el-input
                  :type="item.intervaltype"
                  :style="item.Input_unit?'width:25%;margin-right: 5px':'width:100%'"
                  :placeholder="item.placeholder || '请输入' + item.name"
                  :disabled="item.disabled"
                  :rows="item.rows||3"
                  :oninput="item.oninput||''"
                  v-model.trim="dataform[item.prop][1]"
                ></el-input>
              </div>

关闭弹框的时候记得清空校验充值表单即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值