Skip to content

Input 输入框 ​

17:06

说明 ​

输入框,type 支持 text、number、password、digit、textarea、select 等,border 可选 surround(四周)/ bottom(仅底边框)/ none(默认无边框)。内置清空、密码明文切换与字数统计;默认无边框无背景,放在 ux-form-item 内时会继承表单项 size,并在输入 / 失焦时自动触发表单校验。

兼容性 ​

平台支持情况
App✅ 支持(原生输入的文字色 / 对齐 / placeholder 由组件内联写入,页面 class 覆盖不到输入文字颜色)
H5✅ 支持
微信小程序✅ 支持

示例 ​

基础用法 ​

使用 v-model 双向绑定输入框的值,border 显示边框。

查看源码
vue
<template>
    <ux-input v-model="value" placeholder="请输入内容" border />
    <text class="input-status">当前输入: {{ value }}</text>
</template>

<script setup lang="uts">
const value = ref<string>('');
</script>

<style scoped>
.input-status {
    font-size: 13px;
    color: #606266;
    margin-top: 8px;
}
</style>

输入框类型 type ​

支持 text / number / password / textarea 等类型。

查看源码
vue
<template>
    <ux-input v-model="value" :type="type" placeholder="请输入内容" border />
</template>

<script setup lang="uts">
const value = ref<string>('');
const type = ref<string>('text');
</script>

对齐方式 input-align ​

通过 input-align 设置输入框文字的对齐方式。

查看源码
vue
<template>
    <ux-input v-model="value" input-align="center" placeholder="居中对齐" border />
</template>

<script setup lang="uts">
const value = ref<string>('');
</script>

尺寸配置 size ​

支持 small / default / large 预设值和自定义数值(单位px)。

查看源码
vue
<template>
    <ux-input v-model="value" size="large" placeholder="大尺寸输入框" border />
</template>

<script setup lang="uts">
const value = ref<string>('');
</script>

自定义字号 font-size ​

通过 font-size 设置输入框文字大小,优先于 size 预设。

查看源码
vue
<template>
    <ux-input v-model="value" font-size="20" placeholder="自定义字号" border />
</template>

<script setup lang="uts">
const value = ref<string>('');
</script>

边框颜色 border-color ​

通过 border-color 自定义边框颜色,需配合 border 使用。

查看源码
vue
<template>
    <ux-input v-model="value" placeholder="自定义边框颜色" border border-color="#19be6b" />
</template>

<script setup lang="uts">
const value = ref<string>('');
</script>

密码类型 password ​

type=password 时默认显示右侧眼睛图标,可点击切换明文。

查看源码
vue
<template>
    <ux-input v-model="value" type="password" :password-icon="true" placeholder="请输入密码" border />
</template>

<script setup lang="uts">
const value = ref<string>('');
</script>

清空 clearable ​

clearable=true 时,输入内容后显示清空图标,点击可清空。

查看源码
vue
<template>
    <ux-input v-model="value" :clearable="true" placeholder="可一键清空" border />
</template>

<script setup lang="uts">
const value = ref<string>('ux-input');
</script>

字数统计 count ​

type=textarea 且 count=true 时,右下角显示字数统计。

查看源码
vue
<template>
    <ux-input v-model="value" type="textarea" :count="true" :maxlength="100" placeholder="支持字数统计" border />
</template>

<script setup lang="uts">
const value = ref<string>('');
</script>

禁用 / 只读 ​

disabled 禁用输入,readonly 只读但可点击触发 click 事件。

查看源码
vue
<template>
    <ux-input v-model="disabledValue" disabled placeholder="禁用状态" border />
    <ux-input v-model="readonlyValue" readonly placeholder="只读状态" border />
</template>

<script setup lang="uts">
const disabledValue = ref<string>('禁用状态');
const readonlyValue = ref<string>('只读状态');
</script>

自定义高度 height ​

通过 height 设置输入框高度,单位px,auto 为自动高度。

查看源码
vue
<template>
    <ux-input v-model="value" :height="50" placeholder="自定义高度" border />
</template>

<script setup lang="uts">
const value = ref<string>('');
</script>

前置内容 prefix ​

通过 prefix 插槽在录入区之前放置图标或自定义内容,常用于金额、单位等场景。

查看源码
vue
<template>
    <ux-input v-model="value" type="digit" placeholder="请输入金额" border>
        <template #prefix>
            <ux-icon name="rmb-circle-fill" :size="8" />
        </template>
    </ux-input>
</template>

<script setup lang="uts">
const value = ref<string>('');
</script>

自动聚焦 focus ​

focus=true 时页面加载自动获得焦点,可配合 selection-start / selection-end 选中文本。

查看源码
vue
<template>
    <ux-input v-model="value" :focus="focus" placeholder="自动聚焦的输入框" border />
</template>

<script setup lang="uts">
const value = ref<string>('');
const focus = ref<boolean>(true);
</script>

自动增高 auto-height ​

type=textarea 且 auto-height=true 时,输入内容自动撑高输入区域。

查看源码
vue
<template>
    <ux-input v-model="value" type="textarea" :auto-height="autoHeight" placeholder="多行输入,自动增高" border />
</template>

<script setup lang="uts">
const value = ref<string>('');
const autoHeight = ref<boolean>(true);
</script>

去除两端空格 trim ​

trim=true 时,输入内容自动去除首尾空格。

查看源码
vue
<template>
    <ux-input v-model="value" :trim="trim" placeholder="输入带空格的内容" border />
</template>

<script setup lang="uts">
const value = ref<string>('');
const trim = ref<boolean>(true);
</script>

验证状态 validate-state ​

validate-state=true 时边框变红,用于表单校验失败提示。

查看源码
vue
<template>
    <ux-input v-model="value" :validate-state="validateState" placeholder="验证失败示例" border />
</template>

<script setup lang="uts">
const value = ref<string>('');
const validateState = ref<boolean>(true);
</script>

API ​

Props ​

属性说明类型默认值版本
customStyle自定义根节点样式string | UTSJSONObject--
customClass自定义根节点样式类string''-
modelValue用于双向绑定输入框的值string | number''-
type输入框的类型,textarea,text,numberInputType'text'-
inputAlign输入框文字的对齐方式InputAlign'left'-
size输入框文字的大小SizeType | ''''-
fontSize输入内容字体大小(不传走 size 预设)string | number''-
placeholderplaceholder显示值string''-
disabled是否禁用输入框booleanfalse-
readonly是否只读booleanfalse-
maxlength输入框的最大可输入长度number | string140-
count是否显示统计字数booleanfalse-
cursorColor光标颜色string''-
placeholderStyleplaceholder的样式string''-
confirmType设置键盘右下角按钮的文字InputConfirmType'done'-
fixedtextarea 是否在 fixed 区域booleanfalse-
focus是否自动获得焦点booleanfalse-
passwordIcon密码类型时,是否显示右侧的密码图标booleantrue-
border边框形态boolean | BorderType'none'-
borderColor输入框的边框颜色string''-
autoHeight是否自动增高输入区域booleantrue-
selectOpentype=select时,旋转右侧的图标booleanfalse-
height高度,单位pxnumber | string''-
clearable是否可清空booleantrue-
cursorSpacing指定光标与键盘的距离,单位 pxnumber | string0-
selectionStart光标起始位置number | string-1-
selectionEnd光标结束位置number | string-1-
trim是否自动去除两端的空格booleantrue-
showConfirmbar是否显示键盘上方带有"完成"按钮那一栏booleantrue-
adjustPosition弹出键盘时是否自动调节高度booleantrue-
confirmHold点击键盘右下角按钮时是否保持键盘不收起booleanfalse-
validateState输入框的验证状态booleanfalse-

Events ​

事件名说明回调参数版本
input输入内容时触发value: string-
changevalue: string-
blur输入框失去焦点时触发value: string-
focus输入框获得焦点时触发value: string-
confirm点击完成按钮时触发value: string-
click点击输入框时触发event: UniEvent-
clear点击清空图标时触发event: UniEvent-

Slots ​

插槽名说明版本
prefix录入区前置内容(如金额前缀图标),位于输入框之前,仅在传入时渲染-

注意事项 ​

  1. 默认 border 为 'none'(无边框),与 ux-textarea 默认 'surround' 相反;border 也接受 true/false 作为 'surround'/'none' 的便捷别名。
  2. count 仅在 type="textarea" 时显示;maxlength 默认 140。
  3. clearable 默认 true,清空图标在聚焦、值非空且未禁用时出现;失焦后图标延迟约 100ms 隐藏,避免点图标时先触发 blur 导致点不中。
  4. readonly 样式不变、可点击并触发 click;type="select" 同样强制只读。组件用透明遮罩层捕获点击(原生 input 设 disabled 会阻止点击冒泡)。
  5. type="select" 会强制输入框只读并显示右侧下拉箭头,select-open 控制箭头是否旋转(常配合弹层使用)。
  6. App 端如需调整输入文字颜色 / 字号 / 对齐,请使用 font-size、custom-style、input-align 等 props;页面 class 对原生输入内容无效。
  7. 放在 ux-form-item 内时,size 缺省继承表单项,validate-state 与表单项校验态取「或」,输入 / 失焦会触发对应校验。