Skip to content

InputTag 标签输入框

规则

基础示例

js
const rule = {
    type:"elInputTag",
    title:"标签",
    field:"tag",
    value: ['tag1', 'tag2', 'tag3']
}

Props 配置示例

限制标签数量

js
const rule = {
    type:"elInputTag",
    title:"商品标签",
    field:"tags",
    value: ['热销', '新品'],
    props: {
        max: 5,
        placeholder: "请输入标签,最多5个",
    },
}

可拖拽排序

js
const rule = {
    type:"elInputTag",
    title:"标签排序",
    field:"tags",
    value: ['标签1', '标签2', '标签3'],
    props: {
        draggable: true,
        placeholder: "可拖拽排序",
    },
}

使用分隔符

js
const rule = {
    type:"elInputTag",
    title:"关键词",
    field:"keywords",
    value: [],
    props: {
        delimiter: ',',
        placeholder: "使用逗号分隔多个关键词",
    },
}

失去焦点时保存

js
const rule = {
    type:"elInputTag",
    title:"标签",
    field:"tags",
    value: [],
    props: {
        saveOnBlur: true,
        placeholder: "失去焦点时自动保存",
    },
}

Events 事件示例

监听标签变化

js
const rule = {
    type:"elInputTag",
    title:"商品标签",
    field:"tags",
    value: [],
    props: {
        placeholder: "请输入标签",
    },
    on: {
        change: (value) => {
            console.log('标签改变:', value);
        },
        'add-tag': (value) => {
            console.log('添加标签:', value);
        },
        'remove-tag': (value) => {
            console.log('移除标签:', value);
        },
        blur: (event) => {
            console.log('失去焦点:', event);
        },
        focus: (event) => {
            console.log('获得焦点:', event);
        },
    },
}

标签数量限制提示

js
const rule = {
    type:"elInputTag",
    title:"商品标签",
    field:"tags",
    value: [],
    props: {
        max: 3,
        placeholder: "最多添加3个标签",
    },
    inject: true,
    on: {
        'add-tag': ($inject, value) => {
            const currentTags = $inject.api.getValue('tags') || [];
            if (currentTags.length >= 3) {
                alert('最多只能添加3个标签!');
                // 移除最后一个标签
                currentTags.pop();
                $inject.api.setValue('tags', currentTags);
            }
        },
    },
}

完整配置项:Element_InputTag

value :Array

Props

名称详情类型默认
max可添加标签的最大数量number
tagType标签类型enuminfo
tagEffect标签效果enumlight
trigger触发输入标签的按键enumEnter
draggable是否可以拖动标签booleanfalse
delimiter在匹配分隔符时添加标签string / regex
size输入框尺寸enum
saveOnBlur当输入失去焦点时是否保存输入值booleantrue
clearable是否显示清除按钮booleanfalse
disabled是否禁用booleanfalse
validateEvent是否触发表单验证booleantrue
readonly等价于原生 readonly 属性booleanfalse
autofocus等价于原生 autofocus 属性booleanfalse
id等价于原生 input id 属性string
tabindex等价于原生 tabindex 属性string / number
maxlength等价于原生 maxlength 属性string / number
minlength等价于原生 minlength 属性string / number
placeholder输入框占位文本string
autocomplete等价于原生 autocomplete 属性stringoff
ariaLabel a11y等价于原生 aria-label 属性string

Events

名称详情类型
change绑定值变化时触发的事件Function
input在 Input 值改变时触发Function
add-tagtag 被添加时触发Function
remove-tagtag 被移除时触发Function
focus在 Input 获得焦点时触发Function
blur在 Input 失去焦点时触发Function
clear点击清除图标时触发Function

Slots

名称详情类型
tag作为tag的内容object
prefixInputTag 头部内容
suffixInputTag 尾部内容

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