Skip to content

t-form-item

FormItem 表单项

组件介绍

表单子组件,用于包裹表单字段,提供标签、校验提示等功能,支持多种布局方向和样式定制。

平台兼容

HarmonyH5AndroidiOS小程序UTS

基础用法

vue
<template>
  <t-form :model="formData" :rules="formRules" ref="formRef">
    <t-form-item label="用户名" prop="username" required>
      <t-input v-model="formData.username" placeholder="请输入用户名"></t-input>
    </t-form-item>
    <t-form-item label="密码" prop="password" required>
      <t-input v-model="formData.password" type="password" placeholder="请输入密码"></t-input>
    </t-form-item>
    <t-form-item label="性别" prop="gender">
      <t-radio-group v-model="formData.gender">
        <t-radio label="male">男</t-radio>
        <t-radio label="female">女</t-radio>
      </t-radio-group>
    </t-form-item>
    <t-form-item label="爱好" prop="hobbies">
      <t-checkbox-group v-model="formData.hobbies">
        <t-checkbox label="basketball">篮球</t-checkbox>
        <t-checkbox label="football">足球</t-checkbox>
        <t-checkbox label="swimming">游泳</t-checkbox>
      </t-checkbox-group>
    </t-form-item>
    <t-form-item>
      <t-button type="primary" @click="handleSubmit">提交</t-button>
      <t-button @click="handleReset">重置</t-button>
    </t-form-item>
  </t-form>
</template>

<script setup>
const formRef = ref(null);
const formData = ref({
  username: '',
  password: '',
  gender: '',
  hobbies: []
});

const formRules = ref({
  username: [
    { required: true, message: '请输入用户名', trigger: 'blur' }
  ],
  password: [
    { required: true, message: '请输入密码', trigger: 'blur' },
    { min: 6, message: '密码长度至少6位', trigger: 'blur' }
  ],
  gender: [
    { required: true, message: '请选择性别', trigger: 'change' }
  ]
});

function handleSubmit() {
  if (formRef.value.validate()) {
    console.log('表单验证通过', formData.value);
    // 提交表单数据
  }
}

function handleReset() {
  formRef.value.reset();
}
</script>

Props

属性名类型默认值说明可选值
sizeString"medium"组件尺寸large, medium, small, mini
typeString"primary"组件类型info, primary, error, warning, success
disabledBooleanfalse组件是否禁用true, false
hoverBooleanfalse是否有点击效果true, false
pathString""点击组件后跳转的页面路径-
effectString"normal"组件显示主题normal, dark, light, plain
headerClassString""标题盒子的样式-
showLabelBooleantrue是否显示标题true, false
directionString""布局方向column, row
propString""表单校验绑定的属性名-
labelString""字段显示文本-
requiredBooleanfalse是否必填true, false
showMessageBooleantrue是否显示表单验证规则消息提示true, false
labelClassString""字段文本的样式-
rulesClassString""验证规则的样式-
requiredAsteriskString""必填提示文本-
requiredAsteriskClassString""必填提示文本的样式-
hideRequiredAsteriskBooleanfalse是否隐藏必填提示文本true, false
bottomLineBooleanfalse是否显示底部线条true, false

Events

事件名说明回调参数
click点击时触发-
transitionend动画结束时触发-
initFinished组件初始化完成触发组件的节点信息
touchstart触摸开始时触发触摸事件对象
touchend触摸结束时触发触摸事件对象
touchmove触摸移动时触发触摸事件对象
touchcancel触摸取消时触发触摸事件对象

Slots

插槽名说明
default表单字段内容插槽