el-input输入限制(只能输入0-100的正整数,最小值~最大值联动)

该代码示例展示了在Vue.js中如何使用el-input组件创建输入框,限制输入值为0-100的正整数,并实现最小值与最大值的联动检查。formatInput函数用于格式化输入,parseInput函数确保输入为合法数字并在范围内,checknum函数则在输入超出范围时进行调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 只能输入0-100的正整数
  2. 最小值~最大值联动
<el-input
  style="width: 70px"
  :formatter="formatInput"
  :parser="parseInput"
  @blur="checknum('min', inputData, 'value1', inputData.value2)"
  v-model.number="value"
  placeholder="最小值"
/>
~~
<el-input
  style="width: 70px"
  :formatter="formatInput"
  :parser="parseInput"
  @blur="checknum('max', inputData, 'value2', inputData.value1)"
  v-model.number="value"
  placeholder="最大值"
/>


const formatInput = (value) => {
  // 格式化输入的值,保留数字部分
  return value.replace(/^0+(\d)|[^\d]+/g, '')
}
const parseInput = (value) => {
  // 解析输入的值,将其转换为合法的数字
  let numValue = parseInt(value, 10)
  if (isNaN(numValue)) return '' // 处理输入非数字的情况
  // 限制输入的最小值和最大值
  return Math.max(0, Math.min(100, numValue)).toString()
}
//最小值~最大值
const checknum = (type, inputData, field, otherValue) => {
  let numValue = parseInt(inputData[field], 10) || 0
  if (type == 'max') {
    if (numValue < otherValue) {
      numValue = otherValue
    }
  } else {
    console.log(numValue, otherValue)
    if (otherValue != null && numValue > otherValue) {
      numValue = otherValue
    }
  }
  inputData[field] = numValue
  return numValue
}
在Vue.js中使用Element UI的el-input-number组件时,可以通过设置相关属性来限制用户只能输入正整数。以下是几种实现方法: 1. 使用`min`和`step`属性: ```vue <el-input-number v-model="number" :min="1" :step="1"></el-input-number> ``` 通过设置`min`为1,可以确保输入值不会小于1,从而避免负数和零。`step`设置为1可以限制只能输入整数。 2. 使用`precision`属性: ```vue <el-input-number v-model="number" :precision="0" :step="1"></el-input-number> ``` 设置`precision`为0,可以确保输入值为整数。 3. 使用`on-change`事件进行验证: ```vue <el-input-number v-model="number" :min="1" :step="1" @change="handleChange"></el-input-number> <script> export default { data() { return { number: 1 } }, methods: { handleChange(value) { if (!Number.isInteger(value) || value <= 0) { this.$message.error('请输入正整数'); this.number = 1; } } } } </script> ``` 在`on-change`事件中,我们可以添加更复杂的验证逻辑,确保输入值为正整数。 4. 使用正则表达式限制输入: ```vue <el-input-number v-model="number" :min="1" :step="1" @input="handleInput"></el-input-number> <script> export default { data() { return { number: 1 } }, methods: { handleInput(value) { const reg = /^[1-9]\d*$/; if (!reg.test(value)) { this.$message.error('请输入正整数'); this.number = 1; } } } } </script> ``` 通过正则表达式,我们可以精确控制输入内容,确保只接受正整数。 这些方法可以根据具体需求组合使用,以达到最佳的输入限制效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值