Skip to content

表单的事件

在使用 FormCreate 生成表单时,了解如何处理各种事件是构建动态表单的重要步骤。本节将详细介绍如何通过组件和 fApi 监听和处理表单事件,确保你能灵活控制表单的交互行为。

监听表单事件

FormCreate 提供了两种方式来监听表单事件:通过组件直接监听和通过 fApi 监听。

组件监听方式

你可以在模板中直接使用 v-on 或简写的 @ 语法来监听事件。

html
<form-create @change="onChange"></form-create>

fApi 监听方式

你也可以通过 fApi 对象来监听事件,这种方式更适合在逻辑层面集中管理事件处理。

js
fApi.on('change',this.onChange);

事件类型

以下是 FormCreate 支持的主要事件类型及其详细说明:

change

  • 类型
ts
  type change = (field:string, value:any,rule:Rule, api:Api, setFlag: boolean)=>void;
  • 说明: 当表单组件的值在组件内部发生变化时触发。如果 setFlag 为 true,表示该变化是由外部手动修改引发的。

created

  • 类型
ts
  type created = (api:Api)=>void;
  • 说明: 在表单实例创建时触发,适合进行一些全局的初始设置。

mounted

  • 类型
ts
  type mounted = (api:Api)=>void;
  • 说明: 表单首次渲染完成后触发,通常用于初始化操作。

submit

  • 类型
ts
  type submit = (formData:Object, api:Api)=>void;
  • 说明: 当用户点击表单提交按钮时触发,或者通过调用 api.submit() 方法手动触发。

remove-field

  • 类型
ts
  type removeField = (field:string, rule:Rule, api:Api)=>void;
  • 说明:当表单中某个字段被移除时触发,用于执行清理或同步操作。

remove-rule

  • 类型
ts
  type removeRule = (rule:Rule, api:Api)=>void;
  • 说明:当某个规则从表单中移除时触发,适用于管理表单规则的动态变化。

repeat-field

  • 类型
ts
  type repeatField = (rule:Rule, api:Api)=>void;
  • 说明:当规则的 field 字段重复时触发,用于处理重复字段的情况。

emit-event

  • 类型
ts
  type emitEvent = (emitName:string, ...args:any[])=>void;
  • 说明: 在组件的 emit 事件被触发时触发,允许你监听并处理自定义事件。

control

  • 类型
ts
  type control = (rule:Rule, api:Api)=>void;
  • 说明: 当组件的 control 生效或失效时触发,适用于控制组件的显示逻辑。

reload

  • 类型
ts
  type reload = (api:Api)=>void;
  • 说明: 在表单重载后触发,用于执行重载后的初始化操作。

通过了解并使用这些事件,开发者可以更好地控制表单的行为和用户交互逻辑,从而打造出更复杂、更具响应性的表单应用。

FormCreate 是一个开源项目,基于 MIT 许可证发布,欢迎个人和企业用户免费使用