InputNumber数字输入框 - 图1

InputNumber 数字输入框

通过鼠标或键盘,输入范围内的数值。

何时使用

当需要获取标准数值时。

代码演示

InputNumber数字输入框 - 图2

基本用法

数字输入框。

  1. <template>
  2. <div>
  3. <a-input-number id="inputNumber" v-model:value="value" :min="1" :max="10" />
  4. 当前值:{{ value }}
  5. </div>
  6. </template>
  7. <script lang="ts">
  8. import { defineComponent, ref } from 'vue';
  9. export default defineComponent({
  10. setup() {
  11. const value = ref<number>(3);
  12. return {
  13. value,
  14. };
  15. },
  16. });
  17. </script>

InputNumber数字输入框 - 图3

不可用

点击按钮切换可用状态。

  1. <template>
  2. <div>
  3. <a-input-number :min="1" :max="10" :disabled="disabled" v-model:value="value" />
  4. <div style="margin-top: 20px">
  5. <a-button type="primary" @click="toggle">Toggle disabled</a-button>
  6. </div>
  7. </div>
  8. </template>
  9. <script lang="ts">
  10. import { defineComponent, ref } from 'vue';
  11. export default defineComponent({
  12. setup() {
  13. const value = ref<number>(3);
  14. const disabled = ref<boolean>(true);
  15. const toggle = () => {
  16. disabled.value = !disabled.value;
  17. };
  18. return {
  19. value,
  20. disabled,
  21. toggle,
  22. };
  23. },
  24. });
  25. </script>

InputNumber数字输入框 - 图4

格式化展示

通过 formatter 格式化数字,以展示具有具体含义的数据,往往需要配合 parser 一起使用。

  1. <template>
  2. <div>
  3. <a-input-number
  4. v-model:value="value1"
  5. :formatter="value => `$ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')"
  6. :parser="value => value.replace(/\$\s?|(,*)/g, '')"
  7. />
  8. <a-input-number
  9. v-model:value="value2"
  10. :min="0"
  11. :max="100"
  12. :formatter="value => `${value}%`"
  13. :parser="value => value.replace('%', '')"
  14. />
  15. </div>
  16. </template>
  17. <script lang="ts">
  18. import { defineComponent, ref } from 'vue';
  19. export default defineComponent({
  20. setup() {
  21. const value1 = ref<number>(1000);
  22. const value2 = ref<number>(100);
  23. return {
  24. value1,
  25. value2,
  26. };
  27. },
  28. });
  29. </script>

InputNumber数字输入框 - 图5

三种大小

三种大小的数字输入框,当 size 分别为 largesmall 时,输入框高度为 40px24px ,默认高度为 32px

  1. <template>
  2. <div>
  3. <a-input-number size="large" :min="1" :max="100000" v-model:value="value1" />
  4. <a-input-number :min="1" :max="100000" v-model:value="value2" />
  5. <a-input-number size="small" :min="1" :max="100000" v-model:value="value3" />
  6. </div>
  7. </template>
  8. <script lang="ts">
  9. import { defineComponent, ref } from 'vue';
  10. export default defineComponent({
  11. setup() {
  12. const value1 = ref<number>(3);
  13. const value2 = ref<number>(3);
  14. const value3 = ref<number>(3);
  15. return {
  16. value1,
  17. value2,
  18. value3,
  19. };
  20. },
  21. });
  22. </script>
  23. <style scoped>
  24. .ant-input-number {
  25. margin-right: 10px;
  26. }
  27. </style>

InputNumber数字输入框 - 图6

小数

和原生的数字输入框一样,value 的精度由 step 的小数位数决定。

  1. <template>
  2. <a-input-number v-model:value="value" :min="0" :max="10" :step="0.1" />
  3. </template>
  4. <script lang="ts">
  5. import { defineComponent, ref } from 'vue';
  6. export default defineComponent({
  7. setup() {
  8. const value = ref<number>();
  9. return {
  10. value,
  11. };
  12. },
  13. });
  14. </script>

API

属性如下

成员说明类型默认值
autofocus自动获取焦点booleanfalse
defaultValue初始值number
disabled禁用booleanfalse
formatter指定输入框展示值的格式function(value: number | string): string-
max最大值numberInfinity
min最小值number-Infinity
parser指定从 formatter 里转换回数字的方式,和 formatter 搭配使用function( string): number-
precision数值精度number-
decimalSeparator小数点string-
size输入框大小string
step每次改变步数,可以为小数number|string1
value(v-model)当前值number

事件

事件名称说明回调参数版本
change变化回调Function(value: number | string)
pressEnter按下回车的回调function(e)

方法

名称描述
blur()移除焦点
focus()获取焦点