UNPKG

6.67 kBMarkdownView Raw
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
12react 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 */
30import React, {Component} from 'react';
31import ReactDOM from 'react-dom';
32import Form from '../../src/Form';
33const FormItem = Form.FormItem;
34import FormControl from 'bee-form-control';
35class 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}
53export 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