# Esurvey.js
**Repository Path**: xing_young/esurvey.js
## Basic Information
- **Project Name**: Esurvey.js
- **Description**: Esurvey.js 是一个通过json格式的数据或js对象来自动生成表单的js库。表单样式依赖于bootstrap5,也可以自行修改样式。目前 Esurvey.js 支持五种最常用的题型:单选题、多选题、填空题、多行文本题、量表题。适用于多数量表和测试表。同时 Esurvey.js 内置了简单的前端校验。你也可以通过 onsubmit 方法重写更复杂的校验方法。
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2022-10-03
- **Last Updated**: 2023-02-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Esurvey.js
## 项目介绍
`Esurvey.js`是一个可以通过 json 格式的数据来自动生成表单的 js 库。它也支持直接识别文本转化为json配置数据的功能。
目前`Esurvey.js`支持六种最常用的题型:单选题、多选题、填空题、多行文本题、量表题、李克特量表题。适用于多数量表和测试表。同时`Esurvey.js`内置了简单的前端校验。你也可以通过`onsubmit`方法重写更复杂的校验方法。
## 安装依赖
`Esurvey.js`的样式依赖于`bootstrap5`,因此要使用`Esurvey.js` 需要先安装相关以来,此处可以使用 npm 包管理工具下载,也可自行到中文网网站下载`https://v5.bootcss.com/docs/getting-started/download/`。
```shell
npm i bootstrap@5
```
## 安装 Esurvey.js
### cdn
直接复制下列代码到您的html中,注意先导入`bootstrap5`,以免产生错误。
```html
```
### 下载到本地
你也可以选择下载到本地,下载后通过
```
## 使用 Esurvey.js 创建表单
### 准备一个根元素
首先需要准备一个父级元素作为表单的根结点。我们建议使用
标签进行创建,并设置 class 或 id 以便选择。
```html
```
### 准备配置数据
除了准备一个根元素,`Esurvey.js`需要根据一些配置数据来生成表单。其中有一些配置项是必要的,有一些是可选的
必要元素:
- title
- introduction
- questions
```js
const surveyOptions = {
title: "这里是问卷标题",
introduction: "这是问卷的导语。",
settings: {
formId: "formSample01", // 为表单设置一个独一无二id
formMethod: "POST",
showHead: true,
submitBtn: {
text: "立即提交",
},
},
questions: [
// 单选题
{
id: 1,
name: "sample",
title: "这是一个样例题目",
desc: "这是一个简单的题目描述",
type: "select",
required: true,
options: [
{ id: 1, value: 0, label: "选项一" },
{ id: 2, value: 1, label: "选项二" },
{ id: 3, value: 2, label: "选项三" },
{ id: 4, value: 3, label: "选项四" },
],
},
],
};
```
### 初始化一个 Esurvey 表单
做好上述准备工作之后,我们就可以开始创建表单了。方法很简单,只需要一行代码即可完成。
```js
initSurvey(surveyOptions, ".esurvey-root");
```
其中,`surveyOptions`为配置数据,`".esurvey-root"`为 css 选择器,用于选择我们的根元素。
此时一个简单的表单就创建好了。
### 配置项说明
配置数据主要分为两大部分:问卷配置和问题配置
#### 问卷配置
问卷配置必须设置`title、introduction、questions`这三个配置
```js
const surveyOptions = {
title: "这里是问卷标题",
introduction: "这是问卷的导语。",
settings: {
formId: "formSample01", // 为表单设置一个独一无二id
formMethod: "POST",
showHead: true,
submitBtn: {
text: "立即提交",
},
},
questions: []
```
##### title
- 值:string
- 用途:规定了问卷的标题
##### introduction
- 值:string
- 用途:规定了问卷的导语
##### settings
- 类型:对象
- 规定表单的一些功能和属性
- 内容:
###### formId
- 类型:string
- 用途:规定了