方法一:添加正则校验

缺点:需要根据需要变更正则表达式
在这里插入图片描述

<template>
  <el-form ref="formRef" :model="formData" label-width="80px" size="mini">
    <el-form-item
      label="数字"
      prop="num"
      :rules="[
        {
          pattern: /^[1-9]\d*$/,
          message: '请输入大于0的整数!',
          trigger: 'change',
        },
      ]"
    >
      <el-input
        clearable
        placeholder="请输入大于0的整数!"
        v-model="formData.num"
        style="width: 200px"
      ></el-input>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      formData: {},
    };
  },
};
</script>

方法二:使用 el-input-number

缺点:输入超出最大和最小值的数据时,会自动更正为最大和最小值,用户容易产生误解,以为是bug。

<!-- 只能输入0-100的整数的数字输入框 -->
    <el-input-number
      :controls="false"
      v-model="num"
      :min="0"
      :max="100"
      :precision="0"
    ></el-input-number>

在这里插入图片描述

    <!-- 只能输入-100到100的两位小数的数字输入框 -->
    <el-input-number
      :controls="false"
      v-model="num2"
      :min="-100"
      :max="100"
      :precision="2"
    ></el-input-number>

在这里插入图片描述

参数说明类型可选值默认值
value / v-model绑定值number0
min设置计数器允许的最小值number-Infinity
max设置计数器允许的最大值numberInfinity
step计数器步长number1
step-strictly是否只能输入 step 的倍数booleanfalse
precision数值精度number
size计数器尺寸stringlarge, small
disabled是否禁用计数器booleanfalse
controls是否使用控制按钮booleantrue
controls-position控制按钮位置stringright-
name原生属性string
label输入框关联的label文字string
placeholder输入框默认 placeholderstring--
事件名称说明回调参数
change绑定值被改变时触发currentValue, oldValue
blur在组件 Input 失去焦点时触发(event: Event)
focus在组件 Input 获得焦点时触发(event: Event)
方法名说明参数
focus使 input 获取焦点-
select选中 input 中的文字

若想实现更多功能,可以参考:
《Element UI 源码改造 —— 自定义数字输入框的实现》
https://blog.csdn.net/weixin_41192489/article/details/116748305

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐