Skip to content

InputNumber 数字输入框

规则

基础示例

js
const rule = {
    type: "InputNumber",
    field: "price",
    title: "价格",
    value: 1,
    props: {
        precision: 2
    },
}

Props 配置示例

设置数值范围

js
const rule = {
    type: "InputNumber",
    field: "quantity",
    title: "购买数量",
    value: 1,
    props: {
        min: 1,
        max: 100,
        step: 1,
    },
}

精度控制

js
const rule = {
    type: "InputNumber",
    field: "price",
    title: "商品价格",
    value: 99.99,
    props: {
        precision: 2,
        step: 0.01,
        placeholder: "请输入价格",
    },
}

控制按钮位置

js
const rule = {
    type: "InputNumber",
    field: "quantity",
    title: "数量",
    value: 1,
    props: {
        controlsPosition: "right",
        min: 1,
    },
}

禁用控制按钮

js
const rule = {
    type: "InputNumber",
    field: "score",
    title: "评分",
    value: 0,
    props: {
        controls: false,
        min: 0,
        max: 100,
        placeholder: "请输入0-100的分数",
    },
}

严格步进

js
const rule = {
    type: "InputNumber",
    field: "discount",
    title: "折扣率",
    value: 0.1,
    props: {
        step: 0.1,
        stepStrictly: true,
        precision: 1,
        min: 0,
        max: 1,
    },
}

Events 事件示例

监听数值变化和焦点事件

js
const rule = {
    type: "InputNumber",
    field: "price",
    title: "商品价格",
    value: 0,
    props: {
        min: 0,
        precision: 2,
        placeholder: "请输入价格",
    },
    on: {
        change: (value) => {
            console.log('数值改变:', value);
        },
        blur: (event) => {
            console.log('失去焦点:', event);
        },
        focus: (event) => {
            console.log('获得焦点:', event);
        },
    },
}

数值变化后计算总价

js
const rule = [
    {
        type: "InputNumber",
        field: "price",
        title: "单价",
        value: 0,
        props: {
            min: 0,
            precision: 2,
        },
        inject: true,
        on: {
            change: ($inject, value) => {
                // 自动计算总价
                const quantity = $inject.api.getValue('quantity') || 1;
                const total = value * quantity;
                $inject.api.setValue('total', total.toFixed(2));
            },
        },
    },
    {
        type: "InputNumber",
        field: "quantity",
        title: "数量",
        value: 1,
        props: {
            min: 1,
        },
        inject: true,
        on: {
            change: ($inject, value) => {
                // 自动计算总价
                const price = $inject.api.getValue('price') || 0;
                const total = price * value;
                $inject.api.setValue('total', total.toFixed(2));
            },
        },
    },
    {
        type: "InputNumber",
        field: "total",
        title: "总价",
        props: {
            disabled: true,
            precision: 2,
        },
    },
]

完整配置项:Element_InputNumber

value :Number

Props

属性名说明类型默认值
min设置计数器允许的最小值number-Infinity
max设置计数器允许的最大值numberInfinity
step计数器步长number1
stepStrictly是否只能输入 step 的倍数booleanfalse
precision数值精度number
size计数器尺寸enumdefault
readonly原生 readonly 属性,是否只读booleanfalse
disabled是否禁用状态booleanfalse
controls是否使用控制按钮booleantrue
controlsPosition控制按钮位置enum
name等价于原生 input name 属性string
ariaLabel等价于原生 input aria-label 属性string
placeholder等价于原生 input placeholder 属性string
id等价于原生 input id 属性string
valueOnClear当输入框被清空时显示的值number / null / enum
validateEvent是否触发表单验证booleantrue
label等价于原生 input aria-label 属性string

Events

名称说明类型
change绑定值被改变时触发Function
blur在组件 Input 失去焦点时触发Function
focus在组件 Input 获得焦点时触发Function

Slots

事件名说明
decrease-icon自定义输入框按钮减少图标
increase-icon自定义输入框按钮增加图标
prefix输入框头部内容
suffix输入框尾部内容

FormCreate 是一个开源项目,基于 MIT 许可证发布,欢迎个人和企业用户免费使用