Stepper 步进器

介绍

步进器由增加按钮、减少按钮和输入框组成,用于在一定范围内输入、调整数字

引入

app.jsonindex.json中引入组件,默认为ES6版本,ES5引入方式参见快速上手

"usingComponents": {
  "van-stepper": "path/to/vant-weapp/dist/stepper/index"
}

代码演示

基础用法

通过value设置输入值,可以通过change事件监听到输入值的变化

<van-stepper value="{{ 1 }}" bind:change="onChange" />
Page({
  onChange(event) {
    console.log(event.detail);
  }
})

步长设置

通过step属性设置每次点击增加或减少按钮时变化的值,默认为1

<van-stepper value="{{ 1 }}" step="2" />

限制输入范围

通过minmax属性限制输入值的范围

<van-stepper value="{{ 5 }}" min="5" max="8" />

限制输入整数

设置integer属性后,输入框将限制只能输入整数

<van-stepper value="{{ 1 }}" integer />

禁用状态

通过设置disabled属性来禁用步进器,禁用状态下无法点击按钮或修改输入框

<van-stepper value="{{ 1 }}" disabled />

异步变更

如果需要异步地修改输入框的值,可以设置async-change属性,并在change事件中手动修改value

<van-stepper
  value="{{ value }}"
  async-change
  bind:change="onChange"
/>
Page({
  data: {
    value: 1
  },

  onChange(value) {
    Toast.loading({ forbidClick: true });

    setTimeout(() => {
      Toast.clear();
      this.setData({ value });
    }, 500);
  }
});

自定义大小

通过input-width属性设置输入框宽度,通过button-size属性设置按钮大小和输入框高度

<van-stepper
  value="{{ 1 }}"
  input-width="40px"
  button-size="32px"
/>

Props

参数 说明 类型 默认值 版本
name 在表单内提交时的标识符 string - -
value 输入值 string | number 最小值 -
min 最小值 string | number 1 -
max 最大值 string | number - -
step 步长 string | number 1 -
integer 是否只允许输入整数 boolean false -
disabled 是否禁用 boolean false -
disable-input 是否禁用输入框 boolean false -
async-change 是否开启异步变更,开启后需要手动控制输入值 boolean false -
input-width 输入框宽度,须指定单位 string 30px -
show-plus 是否显示增加按钮 boolean true -
show-minus 是否显示减少按钮 boolean true -

Events

事件名 说明 回调参数
bind:change 当绑定值变化时触发的事件 event.detail: 当前输入的值
bind:overlimit 点击不可用的按钮时触发 -
bind:plus 点击增加按钮时触发 -
bind:minus 点击减少按钮时触发 -
bind:focus 输入框聚焦时触发 -
bind:blur 输入框失焦时触发 -

外部样式类

类名 说明
custom-class 根节点样式类
input-class 输入框样式类
plus-class 加号按钮样式类
minus-class 减号按钮样式类