Skip to content

Input 输入框

输入单行文本或数字。日期、文件和颜色使用对应的独立组件。

命令行安装

bash
npx @loongship-kit/ui add input

基础用法

当前输入文本: (空)
查看代码
vue
<script setup lang="ts">
import { ref } from 'vue'
import { Input } from '@/components/loongship/input'

const vesselName = ref('')
</script>

<template>
  <Input v-model="vesselName" placeholder="Enter vessel name" />
</template>

数字输入

数字输入的值类型

设置 type="number" 后,非空值通过 v-model 更新为 number;清空时更新为空字符串,便于表达尚未填写的表单状态。

当前数值: (空)
查看代码
vue
<script setup lang="ts">
import { ref } from 'vue'
import { Input } from '@/components/loongship/input'

const imoNumber = ref<number | ''>('')
</script>

<template>
  <label>
    IMO number
    <Input
      v-model="imoNumber"
      type="number"
      min="1000000"
      max="9999999"
      step="1"
      placeholder="9876543"
    />
  </label>
  <span>当前数值: {{ imoNumber || '(空)' }}</span>
</template>

禁用与只读

表单校验

组件支持禁用和只读状态。表单校验与错误提示请参考 Form 的完整示例。

查看代码
vue
<template>
  <Input disabled model-value="Disabled text" />
  <Input readonly model-value="IMO 9876543 (Readonly)" />
</template>

API

属性

属性类型默认值说明
v-modelstring | number-当前输入值
defaultValuestring | number-非受控模式的初始值
type'text' | 'number''text'文本或数字输入模式
namestring-表单字段名
placeholderstring-占位文本
disabledbooleanfalse禁用输入
readonlybooleanfalse只读输入
requiredbooleanfalse必填约束
minstring | number-最小值,仅用于 type="number"
maxstring | number-最大值,仅用于 type="number"
stepstring | number1步进,仅用于 type="number"
minlengthnumber-最短文本长度
maxlengthnumber-最长文本长度
patternstring-正则校验规则
autocompletestring-浏览器自动填充提示
inputmodestring-软键盘类型提示
aria-invalidboolean | 'true' | 'false'-错误视觉和无障碍状态
classClassValue-自定义类名

事件

事件参数说明
update:modelValuevalue: string | number输入值改变时触发
inputInputEvent原生输入事件
changeEvent值提交变更时触发
focus / blurFocusEvent获得或失去焦点时触发

插槽

无内容插槽。