提供了在DPL中适用于表单中进行数据提交、状态切换的控制能力, 目前支持接入表单作为可操控表单项的组件有:Input 组件类型。
# demo
# events
名称 | 参数 | 参数说明 | event说明 |
---|---|---|---|
onReady | componentIds: componentId[] | 当前表单中注册的组件列表 | 从存在表单项未完成验证到所有表单项均完成验证时触发 |
onPrepare | componentIds: componentId[] | 当前表单中注册的组件列表 | 从所有表单项均完成验证到存在表单项未完成验证时触发 |
onSubmit | value | 表单中对应表单项内容值,基于 sumbit 提交形式参数类型可以为不同的提交方式 | 通过调用 submit 方法,验证通过时触发 |
onValidateFail | value | errorMsg | 通过调用 submit 方法,验证失败时触发 |
# methods 方法
可以通过 InvokeMethod 指令调用的 Form 能力方法:
方法名 | 参数 | 参数说明 | 方法描述 |
---|---|---|---|
submit | type: enum, componentIds: componentId[] | type:string:基于注册先后顺序字符串形式拼接、object:基于componentId:value的key-value对象形式、array:基于注册先后顺序的值数组形式;componentIds: 需要作用到的组件id数组列表 | 提交表单内容 |
select | status: boolean,componentIds: componentId[] | status: 是否选择;componentIds: 需要作用到的组件id数组列表 | 选择/取消选择,仅支持select能力的表单项组件可生效 |
disable | status: boolean,componentIds: componentId[] | status: 是否禁用;componentIds: 需要作用到的组件id数组列表 | 表单项组件禁用、取消禁用 |
clear | componentIds: componentId[] | componentIds: 需要作用到的组件id数组列表 | 清除数据,仅支持输入能力的表单项组件可生效 |
reset | componentIds: componentId[] | componentIds: 需要作用到的组件id数组列表 | 重置数据 |
blur | componentIds: componentId[] | componentIds: 需要作用到的组件id数组列表 | 使对应组件失去焦点 |
# 能力样例
{
"type": "dpl",
"version": "2.0",
"duration": 66000,
"stylesheet": [],
"dataSource": {},
"events": [],
"abilities": [
{
// 能力类型:表单
"type": "Form",
// 对应能力的id,在组件中若需要接入该表单,需要明确声明:formId:该表单Id
"componentId": "form_validate_code",
"events": {
// 从存在表单项未完成验证到所有表单项均完成验证时触发
"onReady": [{{COMMANDS}}, ...],
// 从所有表单项均完成验证到存在表单项未完成验证时触发
"onPrepare": [{{COMMANDS}}, ...],
// 通过调用 submit 方法,验证通过时触发
"onSubmit": [{{COMMANDS}}, ...],
// 通过调用 submit 方法,验证失败时触发
"onValidateFail": [{{COMMANDS}}, ...],
}
},
...
],
"mainTemplate": {
"items":[
...,
{
"type":"Input",
"componentId": "demo_input1",
"styles": {
...
},
"props": {
// 声明该可用作表单项的组件注册到 componentId 为 form_validate_code 的表单上
"formId": "form_validate_code",
"type": "number",
"theme": "dark",
"maxLength":1,
"placeholder": "",
"value": "",
// 数据验证规则,组件或表单的submit方法提交表单项输入值时会先通过该规则进行验证(正则匹配), 不填默认不验证提交
"rule": {
"pattern": "^\\d{1}$"
},
// 输入组件内部样式
"inputStyle": {
...
},
...
}
]
},
...
}
← 本地存储 Gesture 手势 →