Skip to content

Input 输入框

通过鼠标或键盘输入字符

基础用法

<script lang="ts" setup>
import { ref } from 'vue'

const value = ref('')
</script>
<template>
  <ZgInput v-model="value" placeholder="基础文本框,请输入" />
  <span>{{ value }}</span>
</template>
<script lang="ts" setup>
import { ref } from 'vue'

const value = ref('')
</script>
<template>
  <ZgInput v-model="value" placeholder="基础文本框,请输入" />
  <span>{{ value }}</span>
</template>

禁用状态

通过 disabled 属性指定是否禁用 input 组件

<script lang="ts" setup>
import { ref } from 'vue'

const value = ref('')
</script>
<template>
  <ZgInput v-model="value" placeholder="基础文本框,请输入" disabled />
  <span>{{ value }}</span>
</template>
<script lang="ts" setup>
import { ref } from 'vue'

const value = ref('')
</script>
<template>
  <ZgInput v-model="value" placeholder="基础文本框,请输入" disabled />
  <span>{{ value }}</span>
</template>

一键清空

使用clearable属性即可得到一个可一键清空的输入框

<script lang="ts" setup>
import { ref } from 'vue'

const value = ref('')
</script>
<template>
  <ZgInput v-model="value" placeholder="基础文本框,请输入" clearable />
  <span>{{ value }}</span>
</template>
<script lang="ts" setup>
import { ref } from 'vue'

const value = ref('')
</script>
<template>
  <ZgInput v-model="value" placeholder="基础文本框,请输入" clearable />
  <span>{{ value }}</span>
</template>

密码框

<script lang="ts" setup>
import { ref } from 'vue'

const value = ref('')
</script>
<template>
  <ZgInput v-model="value" placeholder="密码文本框,可以切换" showPassword />
</template>
<script lang="ts" setup>
import { ref } from 'vue'

const value = ref('')
</script>
<template>
  <ZgInput v-model="value" placeholder="密码文本框,可以切换" showPassword />
</template>

带图标的输入框

<script lang="ts" setup>
import { ref } from 'vue'

const value = ref('')
</script>
<template>
  <ZgInput v-model="value" placeholder="基础文本框,请输入">
    <template #prefix>
      <SearchOutlined />
    </template>
    <template #suffix>
      <UserOutlined />
    </template>
  </ZgInput>
</template>
<script lang="ts" setup>
import { ref } from 'vue'

const value = ref('')
</script>
<template>
  <ZgInput v-model="value" placeholder="基础文本框,请输入">
    <template #prefix>
      <SearchOutlined />
    </template>
    <template #suffix>
      <UserOutlined />
    </template>
  </ZgInput>
</template>

文本域

用于输入多行文本信息可缩放的输入框。 添加 type="textarea" 属性来将 input 元素转换为原生的 textarea 元素。

<script lang="ts" setup>
import { ref } from 'vue'

const value = ref('')
</script>
<template>
  <ZgInput v-model="value" placeholder="基础文本框,请输入" type="textarea" />
</template>
<script lang="ts" setup>
import { ref } from 'vue'

const value = ref('')
</script>
<template>
  <ZgInput v-model="value" placeholder="基础文本框,请输入" type="textarea" />
</template>

复合型输入框

可以在输入框中前置或后置一个元素,通常是标签或按钮。

可通过 slot 来指定在 Input 中分发的前置或者后置的内容。

Https://
.com
<script lang="ts" setup>
import { ref } from 'vue'
const test = ref('')
</script>
<template>
  <ZgInput v-model="test" placeholder="prepend append">
    <template #prepend>Https://</template>
    <template #append>.com</template>
  </ZgInput>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const test = ref('')
</script>
<template>
  <ZgInput v-model="test" placeholder="prepend append">
    <template #prepend>Https://</template>
    <template #append>.com</template>
  </ZgInput>
</template>

尺寸

使用 size 属性改变输入框大小。 除了默认大小外,还有另外两个选项: large, small。

<script lang="ts" setup>
import { ref } from 'vue'
const test = ref('')
</script>
<template>
  <div class="size-holder">
    <ZgInput v-model="test" placeholder="大的 Input" size="large"> </ZgInput>
    <ZgInput v-model="test" placeholder="普通的 Input"> </ZgInput>
    <ZgInput v-model="test" placeholder="小的 Input" size="small"> </ZgInput>
  </div>
</template>
<style scoped>
.size-holder {
  display: flex;
  align-items: center;
}
</style>
<script lang="ts" setup>
import { ref } from 'vue'
const test = ref('')
</script>
<template>
  <div class="size-holder">
    <ZgInput v-model="test" placeholder="大的 Input" size="large"> </ZgInput>
    <ZgInput v-model="test" placeholder="普通的 Input"> </ZgInput>
    <ZgInput v-model="test" placeholder="小的 Input" size="small"> </ZgInput>
  </div>
</template>
<style scoped>
.size-holder {
  display: flex;
  align-items: center;
}
</style>

Input Attributes

NameDescriptionTypeDefault
type类型string 等原生 input 类型text
model-value / v-model绑定值string / number
disabled是否禁用booleanfalse
clearable是否显示清除按钮,只有当 type 不是 textarea时生效booleanfalse
showPassword是否显示切换密码图标booleanfalse
placeholder输入框占位文本string
readonly原生 readonly 属性,是否只读booleanfalse
autofocus原生属性,自动获取焦点booleanfalse
autocomplete原生 autocomplete 属性stringoff
form原生 form 属性string
size尺寸'large'| 'small'

Input Events

事件名说明类型
blur当选择器的输入框失去焦点时触发(value: FocusEvent) => void
focus当选择器的输入框获得焦点时触发(value: FocusEvent) => void
clear在点击由 clearable 属性生成的清空按钮时触发() => void
change仅当 modelValue 改变时,当输入框失去焦点或用户按Enter时触发(value: string ) => void
input在 Input 值改变时触发(value: string ) => void

Input Slots

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

Exposes

名称说明类型
refHTML元素 input 或 textareaHTMLInputElement | HTMLTextAreaElement

Released under the MIT License.