Skip to content

Radio 单选框

radio

规则

基础示例

js
const rule = {
    type: 'radio',
    title: '单选框',
    field: 'radio',
    value: '1',
    props: {
        options: [
            {
                text: '单选框1',
                value: '1',
            },
            {
                text: '单选框2',
                value: '2',
            },
        ]
    }
}

Props 配置示例

横向排列

js
const rule = {
    type: 'radio',
    title: '配送方式',
    field: 'delivery',
    value: '1',
    props: {
        options: [
            { text: '快递配送', value: '1' },
            { text: '门店自提', value: '2' },
            { text: '同城配送', value: '3' },
        ],
        direction: 'horizontal',
    }
}

自定义样式

js
const rule = {
    type: 'radio',
    title: '商品状态',
    field: 'status',
    value: '1',
    props: {
        options: [
            { text: '上架', value: '1' },
            { text: '下架', value: '2' },
        ],
        shape: 'square',
        checkedColor: '#ee0a24',
        iconSize: '24px',
    }
}

Events 事件示例

监听选择变化

js
const rule = {
    type: 'radio',
    title: '配送方式',
    field: 'delivery',
    value: '1',
    props: {
        options: [
            { text: '快递配送', value: '1' },
            { text: '门店自提', value: '2' },
            { text: '同城配送', value: '3' },
        ],
    },
    on: {
        change: (name) => {
            console.log('选择值改变:', name);
        },
    },
}

选择后联动更新

js
const rule = [
    {
        type: 'radio',
        title: '配送方式',
        field: 'delivery',
        value: '1',
        props: {
            options: [
                { text: '快递配送', value: '1' },
                { text: '门店自提', value: '2' },
                { text: '同城配送', value: '3' },
            ],
        },
        inject: true,
        on: {
            change: ($inject, name) => {
                // 根据配送方式自动设置运费
                const freightMap = {
                    '1': 10,
                    '2': 0,
                    '3': 5,
                };
                $inject.api.setValue('freight', freightMap[name] || 0);
            },
        },
    },
    {
        type: 'stepper',
        title: '运费',
        field: 'freight',
        props: {
            disabled: true,
        },
    },
]

完整配置项:Vant_Radio

value :String | Number

Options

字段名说明字段类型是否必填默认值
value参数值String,Numbertrue-
text字段别名Stringtrue-
disabled设置为禁用状态Booleanfalsefalse

Props

参数说明类型默认值
disabled是否禁用所有单选框booleanfalse
direction排列方向,可选值为 horizontalstringvertical
icon-size所有单选框的图标大小,默认单位为 pxnumber | string20px
checked-color所有单选框的选中状态颜色string#1989fa
shape形状,可选值为 square dotstringround

Events

事件名说明回调参数
change当绑定值变化时触发的事件name: string

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