Skip to content

Form 表单

u-form 组件用于表单布局和数据收集,u-form-item 组件用于包裹表单控件,提供标签展示和错误信息提示。

基础用法

基本的表单布局使用方式。

vue
<template>
  <u-form>
    <u-form-item label="姓名" required>
      <u-input placeholder="请输入姓名" />
    </u-form-item>
    <u-form-item label="邮箱" required>
      <u-input placeholder="请输入邮箱" />
    </u-form-item>
    <u-form-item>
      <u-button color="primary">提交</u-button>
      <u-button>重置</u-button>
    </u-form-item>
  </u-form>
</template>

行内布局

设置 inlinetrue 时,表单项将水平排列。

vue
<template>
  <u-form inline>
    <u-form-item label="用户">
      <u-input placeholder="用户" />
    </u-form-item>
    <u-form-item label="密码">
      <u-input type="password" placeholder="密码" />
    </u-form-item>
    <u-form-item>
      <u-button color="primary">登录</u-button>
    </u-form-item>
  </u-form>
</template>

标签位置

通过 label-position 属性控制标签的位置,支持 leftrighttop

vue
<template>
  <u-form label-position="top">
    <u-form-item label="标题">
      <u-input placeholder="请输入标题" />
    </u-form-item>
    <u-form-item label="描述">
      <u-input type="textarea" placeholder="请输入描述" />
    </u-form-item>
  </u-form>
</template>

错误提示

通过 message 属性显示错误信息。

vue
<template>
  <u-form>
    <u-form-item label="姓名" required :message="errorMsg">
      <u-input v-model="name" @blur="validateName" />
    </u-form-item>
    <u-form-item>
      <u-button color="primary" @click="validateName">验证</u-button>
    </u-form-item>
  </u-form>
</template>

<script setup>
  import { ref } from 'vue';

  const name = ref('');
  const errorMsg = ref('');

  const validateName = () => {
    if (!name.value) {
      errorMsg.value = '请输入姓名';
    } else if (name.value.length < 2) {
      errorMsg.value = '姓名长度不能少于2个字符';
    } else {
      errorMsg.value = '';
    }
  };
</script>

API

Form Props

属性说明类型可选值默认值
labelPosition标签位置stringleft / right / topright
labelWidth标签宽度string--
inline行内布局boolean-false
disabled禁用整个表单boolean-false

FormItem Props

属性说明类型可选值默认值
label标签文本string--
labelWidth标签宽度(覆盖表单设置)string-80px
required是否必填boolean-false
message错误提示信息string--
color错误信息颜色string内置颜色值error

FormItem Slots

插槽名说明
default表单控件内容
label自定义标签内容