Class: Form

ht.ui. Form

new Form(viewGroup)

表单处理工具类;可快速将容器中的表单组件的名称和值组装为 JSON 数据,也支持通过修改 JSON 将值反填回组件中;
此工具还支持 JSON 整体变化事件和 JSON 中单条数据变化事件
通过 addChangeListener 可监听到的事件:

事件名 事件对象 描述
jsonChange
{
     kind: 'jsonChange', // 事件类型
     oldValue: oldValue, // 旧值
     newValue: newValue, // 新值
     form: form, 表单工具类实例
     fromSetter: true|false // 是否是手动调用 setJSON 导致此事件被派发;如果为 false,说明是切换 viewGroup 或增删表单组件导致此事件被派发
}
JSON 数据整体变化事件(比如绑定了新的 viewGroup)
formDataValueChange
{
     kind: 'formDataValueChange', // 事件类型
     view: view, // 表单组件实例
     name: name, // 表单组件的名称
     oldValue: oldValue, // 旧值
     newValue: newValue, // 新值
     form: form, 表单工具类实例
     fromSetter: true|false // 是否是手动调用 setItem 导致此事件被派发;如果为 false,说明是组件值变化导致此事件被派发
}
JSON 中单条数据值变化事件
Parameters:
Name Type Description
viewGroup ht.ui.ViewGroup

容器对象

Methods

addChangeListener(listener, scope, ahead)

增加数据变化监听器

Parameters:
Name Type Argument Description
listener function

监听器函数

scope Object <optional>

监听器函数域

ahead Boolean <optional>

是否将当前监听器插入到监听器列表开头

getFormDataNames() → {Array}

获取所有的表单组件名称

Returns:
Type
Array

getFormView(name) → {ht.ui.View|Array}

根据名称获取对应的表单组件

Parameters:
Name Type Description
name String

表单组件的 formDataName

Returns:

组件

Type
ht.ui.View | Array

getFormViewMap() → {Object}

获取 表单组件名称-表单组件 映射表

Returns:

组件

Type
Object

getItem(name) → {Object}

根据表单组件的名称获取对应的数据值

Parameters:
Name Type Description
name String

表单组件的 formDataName

Returns:

Type
Object

getJSON() → {Object}

获取由表单组件的名称和值组装成的 JSON 数据

Returns:

JSON 对象

Type
Object

getViewGroup() → {ht.ui.ViewGroup}

获取容器对象

Returns:

容器对象

Type
ht.ui.ViewGroup

isFormDataNameWarnDisabled() → {Boolean}

获取是否禁用了 formDataName 重复检测

Returns:

是否禁用

Type
Boolean

removeChangeListener(listener, scope)

删除数据变化监听器

Parameters:
Name Type Argument Description
listener function

监听器函数

scope Object <optional>

监听器函数域

setFormDataNameWarnDisabled(disabled)

设置是否禁用 formDataName 重复检测,默认为 flase;
除 ToggleButton、CheckBox、RadioButton 之外其它组件的 formDataName 属性如果重复,浏览器会在控制台打印警告, 如果要关闭警告,请调用此 API 并将参数设为 true

Parameters:
Name Type Description
disabled Boolean

是否禁用

setItem(name, value)

设置 JSON 数据中表单组件的名称对应的值,这会同步修改组件的值

Parameters:
Name Type Description
name String

表单组件的 formDataName

value Object

setJSON(json)

设置 JSON 数据,同步更新容器中的表单组件

Parameters:
Name Type Description
json Object

JSON 对象

setViewGroup(viewGroup)

设置容器对象;递归遍历此容器对象并获取表单组件,为表单组件增加属性变化监听器以及时更新 JSON

Parameters:
Name Type Description
viewGroup ht.ui.ViewGroup

容器对象

© 2017 Hightopo Inc. All rights reserved. - Email: service@hightopo.com