1 | # bee-form
|
2 |
|
3 | [![npm version](https://img.shields.io/npm/v/bee-form.svg)](https://www.npmjs.com/package/bee-form)
|
4 | [![Build Status](https://img.shields.io/travis/tinper-bee/bee-form/master.svg)](https://travis-ci.org/tinper-bee/bee-form)
|
5 | [![Coverage Status](https://coveralls.io/repos/github/tinper-bee/bee-form/badge.svg?branch=master)](https://coveralls.io/github/tinper-bee/bee-form?branch=master)
|
6 | [![devDependency Status](https://img.shields.io/david/dev/tinper-bee/bee-form.svg)](https://david-dm.org/tinper-bee/bee-form#info=devDependencies)
|
7 | [![NPM downloads](http://img.shields.io/npm/dm/bee-form.svg?style=flat)](https://npmjs.org/package/bee-form)
|
8 | [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/tinper-bee/bee-form.svg)](http://isitmaintained.com/project/tinper-bee/bee-form "Average time to resolve an issue")
|
9 | [![Percentage of issues still open](http://isitmaintained.com/badge/open/tinper-bee/bee-form.svg)](http://isitmaintained.com/project/tinper-bee/bee-form "Percentage of issues still open")
|
10 |
|
11 |
|
12 | react bee-form component for tinper-bee
|
13 |
|
14 |
|
15 |
|
16 | ## 依赖
|
17 |
|
18 | - react >= 15.3.0
|
19 | - react-dom >= 15.3.0
|
20 | - prop-types >= 15.6.0
|
21 |
|
22 | ## 使用方法
|
23 |
|
24 | ```
|
25 | /**
|
26 | *
|
27 | * @title 基本form校验
|
28 | * @description 块级布局
|
29 | */
|
30 | import React, {Component} from 'react';
|
31 | import ReactDOM from 'react-dom';
|
32 | import Form from '../../src/Form';
|
33 | const FormItem = Form.FormItem;
|
34 | import FormControl from 'bee-form-control';
|
35 | class Demo1 extends Component {
|
36 | checkForm = (flag,obj) => {
|
37 | console.log(flag);
|
38 | console.log(obj);
|
39 | }
|
40 | render() {
|
41 | return (
|
42 | <Form submitCallBack={this.checkForm} >
|
43 | <FormItem isRequire={true} labelName="姓名" htmlType="chinese" errorMessage="姓名格式错误" method="blur" >
|
44 | <FormControl name="name" placeholder="只能输入中文"/>
|
45 | </FormItem>
|
46 | <FormItem isRequire={true} labelName="年龄" method="blur" reg={/^[0-9]+$/} errorMessage="年龄格式错误" >
|
47 | <FormControl name="age" />
|
48 | </FormItem>
|
49 | </Form>
|
50 | )
|
51 | }
|
52 | }
|
53 | export default Demo1;
|
54 | ```
|
55 |
|
56 |
|
57 |
|
58 | ## API
|
59 |
|
60 | # Form
|
61 | ## 代码演示
|
62 | ## API
|
63 |
|
64 | ### Form 参数说明
|
65 | |参数|说明|类型|默认值|
|
66 | |:---|:-----|:----|:------|
|
67 | |submitCallBack|表单验证回调函数,参数两个,第一个为校验是否成功`true/false` 第二个为表单内元素数组`[{name: "", verify: false, value: ""}]`|function|-|
|
68 | |submitAreaClassName|表单提交区域class|string|-|
|
69 | |submitBtnClassName|表单提交按钮class|string|-|
|
70 | |beforeSubmitBtn|表单提交按钮之前的dom|node|-|
|
71 | |afterSubmitBtn|表单提交按钮之后的dom|node|-|
|
72 | |useRow|是否使用栅格布局,如使用:需要再`FormItem`传格子数和label的格子数|bool|-|
|
73 | |showSubmit|是否显示提交区域|bool|true|
|
74 | |checkFormNow|是否立即校验,校验完成后将checkFormNow置为false,否则在form渲染的时候会直接校验|bool|false|
|
75 |
|
76 |
|
77 | ### FormItem 参数说明
|
78 | |参数|说明|类型|默认值|
|
79 | |:---|:-----|:----|:------|
|
80 | |valuePropsName|子元素取值的props|string|defaultValue|
|
81 | |isRequire|是否必填|bool|false|
|
82 | |errorMessage|错误提示信息,可传数组,和正则数组一一对应|node/array|"校验失败"|
|
83 | |htmlType|数值类型,目前支持 `email/tel/IDCard/chinese/password` 类型|string|-|
|
84 | |reg|校验正则,注:设置 `htmlType` 后 `reg` 无效;当不设置`isRequire`的时候,如果有值,会使用reg校验,如果值为空,则不校验;可传数组,和错误信息数组一一对应|regExp/array|-|
|
85 | |method|何时校验 change/blur|string|-|
|
86 | |blur|失去焦点的回调函数|function|-|
|
87 | |change|改变值的回调函数|function|-|
|
88 | |check|验证的回调函数,参数两个,第一个为校验是否成功`true/false` 第二个为验证结果对象`{name: "", verify: false, value: ""}`|function|-|
|
89 | |inline|是否行内显示,须有`Form`才有效,单个`FormItem`无效|bool|false|
|
90 | |labelName|输入框label标签内容|node|-|
|
91 | |showMast|是否显示必输项的*|bool|false|
|
92 | |asyncCheck|返回true则校验成功,false或无返回值则校验失败。参数为{name:xxx,value:xxx},如果使用asyncCheck,则其它校验props不生效|function|-|
|
93 | |labelClassName|输入框label标签的class|string|-|
|
94 | |mesClassName|校验错误信息的class|string|-|
|
95 | |inputBefore|input前缀|node|-|
|
96 | |inputAfter|input后缀|node|-|
|
97 | |xs|移动设备显示列数(<768px)|number|-|
|
98 | |sm|小屏幕桌面设备显示列数(≥768px)|number|-|
|
99 | |md|中等屏幕设备显示列数(≥992px)|number|-|
|
100 | |lg|大屏幕设备显示列数(≥1200px)|number|-|
|
101 | |xsPull|移动屏幕设备到右边距列数|number|-|
|
102 | |smPull|小屏幕设备到右边距列数|number|-|
|
103 | |mdPull|中等屏幕设备到右边距列数|number|-|
|
104 | |lgPull|大屏幕设备到右边距列数|number|-|
|
105 | |xsPush|移动屏幕设备到左边距列数|number|-|
|
106 | |smPush|小屏幕设备到左边距列数|number|-|
|
107 | |mdPush|中等屏幕设备到左边距列数|number|-|
|
108 | |lgPush|大屏幕设备到左边距列数|number|-|
|
109 | |xsOffset|移动设备偏移列数|number|-|
|
110 | |smOffset|小屏幕设备偏移列数|number|-|
|
111 | |mdOffset|中等屏幕设备偏移列数|number|-|
|
112 | |lgOffset|大屏幕设备偏移列数|number|-|
|
113 | |labelXs|label移动设备显示列数(<768px)|number|-|
|
114 | |labelSm|label小屏幕桌面设备显示列数(≥768px)|number|-|
|
115 | |labelMd|label中等屏幕设备显示列数(≥992px)|number|-|
|
116 | |labelLg|label大屏幕设备显示列数(≥1200px)|number|-|
|
117 | |labelXsPull|label移动屏幕设备到右边距列数|number|-|
|
118 | |labelSmPull|label小屏幕设备到右边距列数|number|-|
|
119 | |labelMdPull|label中等屏幕设备到右边距列数|number|-|
|
120 | |labelLgPull|label大屏幕设备到右边距列数|number|-|
|
121 | |labelXsPush|label移动屏幕设备到左边距列数|number|-|
|
122 | |labelSmPush|label小屏幕设备到左边距列数|number|-|
|
123 | |labelMdPush|label中等屏幕设备到左边距列数|number|-|
|
124 | |labelLgPush|label大屏幕设备到左边距列数|number|-|
|
125 | |labelXsOffset|label移动设备偏移列数|number|-|
|
126 | |labelSmOffset|label小屏幕设备偏移列数|number|-|
|
127 | |labelMdOffset|label中等屏幕设备偏移列数|number|-|
|
128 | |labelLgOffset|label大屏幕设备偏移列数|number|-|
|
129 |
|
130 |
|
131 |
|
132 |
|
133 | ### 其它说明
|
134 | - `Form`的子元素中如果有`Button`并且此`Button`的`isSubmit=true`,则可以作为提交按钮
|
135 | - `Form`整体校验时,会触发`FormItem`的校验
|
136 | - `FormItem`的子元素,`name`必须存在且不能重复
|
137 | - `FormItem`子元素只能存在一个
|
138 |
|
139 | #### 开发调试
|
140 |
|
141 | ```sh
|
142 | $ npm install -g bee-tools
|
143 | $ git clone https://github.com/tinper-bee/bee-form
|
144 | $ cd bee-form
|
145 | $ npm install
|
146 | $ npm run dev
|
147 | ```
|
148 |
|
\ | No newline at end of file |