Form 表单

用以收集、校验和提交数据,支持水平与竖向两种排布示例。

对齐 TDesign 交互的表单容器,负责字段注册、校验、重置和首个错误滚动

演示

9:41

代码示例

<re-button shape="round" size="small" :theme="horizontalMode ? 'primary' : 'default'" content="水平排布" customStyle="flex:1;margin-right:8px;" @click="switchLayout(true)" />
  <re-button shape="round" size="small" :theme="horizontalMode ? 'default' : 'primary'" content="竖向排布" customStyle="flex:1;" @click="switchLayout(false)" />
  <re-switch :value="disabledMode" @change="onDisabledChange" />
  <re-form ref="demoFormRef" class="demo-form" :data="formDataObject" :rules="formRules" resetType="initial" :showErrorMessage="true" scrollToFirstError="smooth" :labelAlign="currentLabelAlign" :labelWidth="currentLabelWidth" :contentAlign="currentContentAlign" @reset="onFormReset" @submit="onFormSubmit" @validate="onFormValidate" >
  <re-form-item label="用户名" name="name" help="输入用户名" contentAlign="left">
  <re-input :value="formData.name" :disabled="disabledMode" :borderless="true" placeholder="请输入用户名" @update:value="(value) =>
  <re-form-item label="手机号" name="phone">
  <re-input :value="formData.phone" :disabled="disabledMode" :borderless="true" :align="horizontalMode ? 'right' : 'left'" placeholder="请输入手机号" @update:value="(value) =>
  <re-form-item label="邮箱" name="email">
  <re-input :value="formData.email" :disabled="disabledMode" :borderless="true" :align="horizontalMode ? 'right' : 'left'" placeholder="请输入邮箱" @update:value="(value) =>
  <re-form-item label="个人简介" name="bio">
  <re-input type="textarea" :value="formData.bio" :disabled="disabledMode" :borderless="true" placeholder="请输入个人简介" tips="最多 40 个字符" :maxlength="40" @update:value="(value) =>
  <re-button theme="primary" content="提交" customStyle="flex:1;margin-right:12px;height:32px;" @click="submitForm" />
  <re-button content="重置" customStyle="flex:1;" @click="resetForm" />

引入

推荐使用 easycom 模式,配置后无需手动 import 即可直接使用 <re-form />。

API

Form Props

名称类型默认值描述必传
dataUTSJSONObject | nullnull-N
modelUTSJSONObject | nullnull-N
rulesUTSJSONObject | nullnull-N
errorMessageUTSJSONObject | nullnull-N
labelAlignstring'right'-N
labelWidthstring | number'81px'-N
contentAlignstring'left'-N
requiredMarkbooleantrue-N
requiredMarkPositionstring'right'-N
resetTypestring'empty'-N
scrollToFirstErrorstring''-N
showErrorMessagebooleantrue-N
submitWithWarningMessagebooleanfalse-N
colonbooleanfalse-N
customStylestring''自定义样式N

Form Events

名称参数描述
resetdetail: UTSJSONObject重置时触发
submitdetail: UTSJSONObject提交时触发
validatedetail: UTSJSONObject-

Form Slots

名称描述
default默认插槽

FormItem Props

名称类型默认值描述必传
arrowbooleanfalse-N
contentAlignstring''-N
helpstring''-N
labelstring''-N
labelAlignstring''-N
labelWidthstring | number''-N
namestring''标识名称N
requiredMarkboolean--N
requiredbooleanfalse-N
rulesArray<UTSJSONObject>() : Array<UTSJSONObject> => as Array<UTSJSONObject>-N
showErrorMessageboolean--N
customStylestring''自定义样式N

FormItem Slots

名称描述
label-
default默认插槽
help-