Form 表单集合

定义/Definition

具有数据收集、校验和提交功能的表单,包含选择、输入框、下拉选择框等元素。

规则 / Rule

  • 表单指意需明确,建议增加引导性的暗文字提醒;

  • 同一组列表使用同一种对齐方法;

  • 同一组列表不允许多种类型混搭。

代码演示

表单

表单集合

  1. import { List, InputItem, Switch, Stepper, Slider, Radio, Checkbox, TextareaItem, WingBlank, WhiteSpace, Button } from 'antd-mobile';
  2. import { createForm } from 'rc-form';
  3. let BasicInput = React.createClass({
  4. getInitialState() {
  5. return {
  6. disabled: false,
  7. checked: null,
  8. r: 'a',
  9. s: 'e',
  10. };
  11. },
  12. handleChange(e) {
  13. this.setState({
  14. r: e.target.value,
  15. });
  16. },
  17. handleChange2(e) {
  18. this.setState({
  19. s: e.target.value,
  20. });
  21. },
  22. onClick() {
  23. console.log(this.props.form.getFieldsValue());
  24. },
  25. render() {
  26. const { getFieldProps } = this.props.form;
  27. return (<div>
  28. <List>
  29. <List.Header>表单输入项</List.Header>
  30. <List.Body>
  31. <InputItem
  32. {...getFieldProps('input3', {
  33. initialValue: '小蚂蚁',
  34. })}
  35. clear
  36. placeholder=""
  37. >帐号</InputItem>
  38. <InputItem
  39. {...getFieldProps('input4')}
  40. clear
  41. placeholder="请输入密码"
  42. >密码</InputItem>
  43. </List.Body>
  44. </List>
  45. <List>
  46. <List.Header>表单展示项</List.Header>
  47. <List.Body>
  48. <List.Item
  49. thumb="https://zos.alipayobjects.com/rmsportal/dNuvNrtqUztHCwM.png"
  50. >我的钱包</List.Item>
  51. <List.Item
  52. thumb="https://zos.alipayobjects.com/rmsportal/UmbJMbWOejVOpxe.png"
  53. onClick={() => {}}
  54. >我的花销占比</List.Item>
  55. </List.Body>
  56. </List>
  57. <List>
  58. <List.Header>表单开关项</List.Header>
  59. <List.Body>
  60. <List.Item
  61. extra={<Switch
  62. {...getFieldProps('1', {
  63. initialValue: true,
  64. valuePropName: 'checked',
  65. })}
  66. />}
  67. >使用 Ant Desgin Component</List.Item>
  68. <List.Item
  69. extra="大尺寸"
  70. arrow="horizontal"
  71. >个性化调整</List.Item>
  72. <List.Item
  73. extra={<img src="https://zos.alipayobjects.com/rmsportal/zvUHiplIUVXxLwr.png" width="28" height="28" />}
  74. arrow="horizontal"
  75. >个性化调整</List.Item>
  76. </List.Body>
  77. </List>
  78. <List>
  79. <List.Header>表单计数项</List.Header>
  80. <List.Body>
  81. <List.Item
  82. extra={<Stepper showNumber size="small" max={10} min={1} defaultValue={1} onChange={() => {}} />}
  83. >显示数值</List.Item>
  84. <List.Item>
  85. <Slider range defaultValue={[20, 50]} />
  86. </List.Item>
  87. </List.Body>
  88. </List>
  89. <List>
  90. <List.Header>表单单选项</List.Header>
  91. <List.Body>
  92. <Radio.RadioItem
  93. value="a"
  94. checked={this.state.r === 'a'}
  95. onChange={this.handleChange}
  96. disabled={this.state.disabled}
  97. >
  98. 使用 Ant Desgin Component
  99. </Radio.RadioItem>
  100. <Radio.RadioItem
  101. value="b"
  102. checked={this.state.r === 'b'}
  103. onChange={this.handleChange}
  104. disabled={this.state.disabled}
  105. >
  106. 使用 Ant Desgin Component
  107. </Radio.RadioItem>
  108. <Radio.RadioItem
  109. value="c"
  110. checked
  111. onChange={this.handleChange}
  112. disabled
  113. >
  114. 个性化调整disabled
  115. </Radio.RadioItem>
  116. <Radio.RadioItem
  117. value="d"
  118. checked={false}
  119. onChange={this.handleChange}
  120. disabled
  121. >
  122. 个性化调整disabled
  123. </Radio.RadioItem>
  124. </List.Body>
  125. </List>
  126. <List >
  127. <List.Header>表单多选项,普通列表中多选项</List.Header>
  128. <List.Body>
  129. <Checkbox.CheckboxItem
  130. {...getFieldProps('f1', {
  131. initialValue: true,
  132. valuePropName: 'checked',
  133. })}
  134. >
  135. 使用 Ant Desgin Component
  136. </Checkbox.CheckboxItem>
  137. <Checkbox.CheckboxItem
  138. {...getFieldProps('f2', {
  139. initialValue: false,
  140. valuePropName: 'checked',
  141. })}
  142. >
  143. 使用 Ant Desgin Component
  144. </Checkbox.CheckboxItem>
  145. <Checkbox.CheckboxItem
  146. disabled
  147. {...getFieldProps('f3', {
  148. initialValue: false,
  149. valuePropName: 'checked',
  150. })}
  151. >
  152. 未选中,不可编辑
  153. </Checkbox.CheckboxItem>
  154. <Checkbox.CheckboxItem
  155. disabled
  156. {...getFieldProps('f4', {
  157. initialValue: true,
  158. valuePropName: 'checked',
  159. })}
  160. >
  161. 强制选中,不可编辑
  162. </Checkbox.CheckboxItem>
  163. </List.Body>
  164. </List>
  165. <List>
  166. <List.Header>多行输入,TextareaItem</List.Header>
  167. <List.Body>
  168. <TextareaItem
  169. {...getFieldProps('note7', {
  170. initialValue: '多行输入,带计数功能,count+rows',
  171. valuePropName: 'value',
  172. })}
  173. labelNumber={4}
  174. name="yyy"
  175. rows={5}
  176. placeholder="计数功能"
  177. clear
  178. count={100}
  179. onBlur={() => { console.log('onBlur'); }}
  180. onFocus={(e) => { console.log('onFocus'); console.log(e); }}
  181. />
  182. </List.Body>
  183. </List>
  184. <WhiteSpace />
  185. <WingBlank>
  186. <Button type="primary">通栏按钮</Button>
  187. </WingBlank>
  188. <WhiteSpace />
  189. </div>);
  190. },
  191. });
  192. BasicInput = createForm()(BasicInput);
  193. ReactDOM.render(<BasicInput />, mountNode);

Form表单集合 - 图1