## Label
| 属性 | 说明 | 类型 | 默认值 |
| :--- | :--- | :--- | :--- |
| htmlFor | 原生label元素的for属性，应为对应表单组件的name | `string` | `''` |
| help | 是否显示帮助链接(target都是_blank) | `string` | `undefined` |
| required | 是否显示必填标志 | `bool` | `undefined` |

## FormRow
| 属性 | 说明 | 类型 | 默认值 |
| :--- | :--- | :--- | :--- |
| inline**(还不支持!!!)** | 是否设置此FormRow元素为`display: inline-block` | `bool` | `undefined` |

## Form
| 属性 | 说明 | 类型 | 默认值 |
| :--- | :--- | :--- | :--- |
| horizontal | 表单与Label排布是否水平 | `bool` | `true` |
| inline | FormRow之间是否水平 | `bool` | `undefined` |

### Form组件提供的API
注意：被Form.decorate包裹过的组件，value(或options.valuePropName提供)和onChange(或options.trigger提供)的props会被包裹的HOC组件控制，你依然可以：
1. 使用onChange绑定表单组件
2. 使用value和defaultValue prop控制表单

| 方法 | 说明 | 类型 |
| :--- | :--- | :--- |
| Form.decorate(klass, options) | 对一个表单`ReactClass`进行封装，以支持Form的API | Function(klass: `ReactClass`, options: `object`): `ReactClass` |

### Form.decorate 's parameters
| 属性 | 说明 | 类型 | 默认值 |
| :--- | :--- | :--- | :--- |
| options.valuePropName | 子表单组件的value属性，比如checkbox为`checked` | `string` | `value` |
| options.trigger | 收集子表单组件值的时机 | `string` | `onChange` |

### Form组件**实例**提供的API
> 注意：使用Form API时，表单组件使用Form命名空间下的组件，见最后一个demo

| API | 说明 | 类型 |
| :--- | :--- | :--- |
| getValues | 获取此Form下的所有带name的表单组件的值 | Function(): `object {name -> value}` |
| setValues | 设置此Form下的所有带name的表单组件的值 | Function(): `object {name -> value}` |
| getFieldValue(name) | 获取对应表单的值 | Function(name: `string`): `any` |
| setFieldValue(name, value) | 设置对应表单的值 | Function(name: `string`, value: `any`): `bool` |

几点说明：
* Form组件主要解决表单布局的问题，如果有什么新的建议或者想法提issue出来哈！
* Form组件为其所有子元素提供了一个context，`this.context.form`就是Form组件实例
* Form布局实现有更改`im-form--{修饰}`类下的表单组件如`im-checkgroup`，`im-radio-group`的样式，如果出现布局问题可以自行更改
