Skip to content

数字输入框

@astryxdesign/core v0.7.1 · NumberInput

使用方法 ​

NumberInput 是一个专门用于数字输入的组件,提供最小最大值限制、精度控制等功能。用户可以手动输入数字;需要加减按钮时加上 hasNumberSteppers。

基本用法只需要绑定一个数字值:

vue
<script setup lang="ts">
import { NumberInput } from '@astryx-vue/core/NumberInput'
import { ref } from 'vue'

const count = ref(0)
</script>

<template>
  <NumberInput v-model="count" :min="0" :max="100" />
</template>

通过 min 和 max 属性设置数值范围,step 设置每次增减的步长。超出范围的值会被限制在有效区间内。步进按钮使用向上和向下的箭头。按钮的无障碍名称默认是英文,调用 provideAstryxLocale('zh-CN') 后改为中文;如果传了 label,名称里会带上它。

还有三个属性让字段贴合它装的数字:isIntegerOnly 让小数进不了值;formatValue 让字段闲着时显示易读的样子,比如 1234 件,聚焦后换回原始数字;isWheelEnabled={false} 让滚轮只滚页面、不改数值。

解剖

部分说明
标签数字输入的标签。
说明标签下面的补充说明。
图标输入框里的可选图标。
占位输入为空时显示的占位文字。
数字步进可选按钮,按配置的步长加减。

最佳实践 ​

指引实践
推荐为数值范围明确的场景设置 min 和 max。
推荐根据实际需求设置合理的步长,如数量用 1,价格用 0.01。
推荐在标签中说明单位(如"数量(件)"),而不是把单位放在输入框内。
避免对大范围数值使用过小的步长,会让用户点击按钮很多次。

示例 ​

可清除

%

进度从 0 到 100,带百分号和清除按钮。

范围

Number of people on the team

团队人数限制在 1 到 50,并说明这个数字代表什么。

校验状态

Must be a positive amount
Exceeds typical team size
%
On track

预算、人数和完成度上的错误、警告和成功。

单位

%

带百分号的折扣,范围是 0 到 100。