Skip to content

Input 输入框

规则

基础示例

js
const rule = {
    type:"input",
    title:"商品名称",
    field:"goods_name",
    value:"iphone 7",
    col:{
    	span:12,
    	labelWidth:150
    },
    props: {
        type: "text",
    },
    validate:[
        { required: true, message: '请输入goods_name', trigger: 'blur' },
    ],
}

Props 配置示例

可清空输入框

js
const rule = {
    type:"input",
    title:"用户名",
    field:"username",
    props: {
        placeholder: "请输入用户名",
        clearable: true,
        prefixIcon: "User",
        suffixIcon: "Search",
    },
}

文本域(Textarea)

js
const rule = {
    type:"input",
    title:"商品描述",
    field:"description",
    props: {
        type: "textarea",
        placeholder: "请输入商品描述",
        rows: 4,
        autosize: { minRows: 3, maxRows: 6 },
        resize: "vertical",
    },
}

密码输入框(Password)

js
const rule = {
    type:"input",
    title:"商品描述",
    field:"description",
    props: {
        type: "password",
    },
}

禁用和只读

js
const rule = {
    type:"input",
    title:"订单号",
    field:"order_no",
    value:"ORD20240101001",
    props: {
        disabled: true,
        // 或使用 readonly: true,
    },
}

输入长度限制

js
const rule = {
    type:"input",
    title:"手机号",
    field:"phone",
    props: {
        placeholder: "请输入11位手机号",
        maxlength: 11,
        minlength: 11,
        clearable: true,
    },
    validate:[
        { required: true, message: '请输入手机号', trigger: 'blur' },
    ],
}

Events 事件示例

监听输入变化和焦点事件

js
const rule = {
    type:"input",
    title:"搜索关键词",
    field:"keyword",
    props: {
        placeholder: "请输入搜索关键词",
        clearable: true,
    },
    on: {
        change: (value) => {
            console.log('输入值改变:', value);
        },
        blur: (event) => {
            console.log('失去焦点:', event);
        },
        focus: (event) => {
            console.log('获得焦点:', event);
        },
        clear: () => {
            console.log('清空输入');
        },
    },
}

实时搜索(change 事件)

js
const rule = {
    type:"input",
    title:"搜索商品",
    field:"keyword",
    props: {
        placeholder: "请输入商品名称搜索",
        clearable: true,
        prefixIcon: "Search",
    },
    inject: true,
    on: {
        change: ($inject, value) => {
            // 实时搜索:输入时自动触发搜索
            if (value && value.length >= 2) {
                // 调用搜索接口
                searchProducts(value).then(res => {
                    // 更新搜索结果
                    $inject.api.setValue('searchResults', res.data);
                });
            }
        },
    },
}

联动更新其他字段(change 事件)

js
const rule = [
    {
        type:"input",
        title:"商品名称",
        field:"goods_name",
        props: {
            placeholder: "请输入商品名称",
        },
        inject: true,
        on: {
            change: ($inject, value) => {
                // 当商品名称改变时,自动生成商品编码
                if (value) {
                    const code = 'GD' + value.substring(0, 3).toUpperCase() + Date.now().toString().slice(-6);
                    $inject.api.setValue('goods_code', code);
                }
            },
        },
    },
    {
        type:"input",
        title:"商品编码",
        field:"goods_code",
        props: {
            disabled: true,
        },
    },
]

Slots 插槽示例

js
const rule = {
    type:"input",
    title:"网址",
    field:"url",
    props: {
        placeholder: "请输入网址",
    },
    children: [
        {
            type: 'div',
            slot: 'prefix',
            children: ['https://']
        },
        {
            type: 'div',
            slot: 'suffix',
            children: ['.com']
        },
    ]
}

完整配置项:Element_Input

value :String

Props

参数说明类型可选值默认值
type类型stringtext,textarea 和其他 原生 input 的 type 值text
maxlength原生属性,最大输入长度number
minlength原生属性,最小输入长度number
placeholder输入框占位文本string
clearable是否可清空booleanfalse
disabled禁用booleanfalse
size输入框尺寸,只在 type!="textarea" 时有效stringmedium / small / mini
prefixIcon输入框头部图标string
suffixIcon输入框尾部图标string
rows输入框行数,只对 type="textarea" 有效number2
autosize自适应内容高度,只对 type="textarea" 有效,可传入对象,如,{ minRows: 2, maxRows: 6 }boolean / objectfalse
autocomplete原生属性,自动补全stringon, offoff
autoComplete下个主版本弃用stringon, offoff
name原生属性string
readonly原生属性,是否只读booleanfalse
max原生属性,设置最大值
min原生属性,设置最小值
step原生属性,设置输入字段的合法数字间隔
resize控制是否能被用户缩放stringnone, both, horizontal, vertical
autofocus原生属性,自动获取焦点booleantrue, falsefalse
form原生属性string
label输入框关联的label文字string
tabindex输入框的tabindexstring--
validateEvent输入时是否触发表单的校验boolean-true

Events

事件名称说明回调参数
blur在 Input 失去焦点时触发(event: Event)
focus在 Input 获得焦点时触发(event: Event)
change在 Input 值改变时触发(value: string | number)
clear在点击由 clearable 属性生成的清空按钮时触发

Slots

插槽名说明
prefix输入框头部内容,只对非 type="textarea" 有效
suffix输入框尾部内容,只对非 type="textarea" 有效
prepend输入框前置内容,只对非 type="textarea" 有效
append输入框后置内容,只对非 type="textarea" 有效

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