php模拟创建form表单,动态生成form表单实现方法

使用iview动态创建form表单

具有数据收集、校验和提交功能的表单生成器,包含复选框、单选框、输入框、下拉选择框等元素以及时间选择,日期选择,颜色选择,文件/图片上传功能。

示例

adedf497f98c09ba24c28ad759778371.png

安装npm install form-create

ORgit clone https://github.com/xaboy/form-create.git

cd form-create

npm install

引入

使用let rules = [],el = document.body;

new Vue({

mounted:function(){

var $f = this.$formCreate(rules,el);

}

})

$formCreate 参数

rules 表单规则 [inputRule,selectRule,...]

el 插入的Dom节点 默认为 document.body

$f 实例方法

获得表单数据

$f.formData()

修改表单数据

$f.changeField(field,value)

表单验证

$f.validate(successFn,errorFn)

表单验证指定字段

$f.validateField(field,errorFn)

重置表单

$f.resetFields()

移除表单

$f.remove()

获得表单所有字段

$f.fields()

提交表单

$f.submit()

rules 规则:

hidden 隐藏字段hiddenRule:

{

type:"hidden",

field:"id", //字段名称

value:"14" //input值

}

input 输入框inputRule :

{

type:"input",

title:"商品名称", //label名称

field:"goods_name" , //字段名称

value:"iphone 7", //input值,

props: {

"type": "text", //输入框类型,可选值为 text、password、textarea、url、email、date

"clearable":false, //是否显示清空按钮

"disabled": false, //设置输入框为禁用状态

"readonly": false, //设置输入框为只读

"rows": 4, //文本域默认行数,仅在 textarea 类型下有效

"autosize": false, //自适应内容高度,仅在 textarea 类型下有效,可传入对象,如 { minRows: 2, maxRows: 6 }

"number": false, //将用户的输入转换为 Number 类型

"autofocus": false, //自动获取焦点

"autocomplete": "off", //原生的自动完成功能,可选值为 off 和 on

"placeholder": "请输入商品名称", //占位文本

"size": "default", //输入框尺寸,可选值为large、small、default或者不设置,

"spellcheck": false //原生的 spellcheck 属性

},

validate:[

{ required: true, message: 'Mailbox cannot be empty', trigger: 'blur' },

{ type: 'email', message: 'Incorrect email format', trigger: 'blur' }

]

}

validate 表单验证规则,具体配置查看 : https://github.com/yiminghe/async-validator

radio 单选框radioRule :

{

type:"radio",

title:"是否包邮",

field:"is_postage",

value:"0", //input值,

options:[

{value:"0",label:"不包邮",disabled:false},

{value:"1",label:"包邮",disabled:true}

],

props: {

"type":undefined, //可选值为 button 或不填,为 button 时使用按钮样式

"size":"default", //单选框的尺寸,可选值为 large、small、default 或者不设置

"vertical":false //是否垂直排列,按钮样式下无效

},

validate:[]

}

checkbox 复选框checkboxRule :

{

type:"checkbox",

title:"标签",

field:"label",

value:[

"1","2","3"

],//input值,

options:[

{value:"1",label:"好用",disabled:true},

{value:"2",label:"方便",disabled:false},

{value:"3",label:"实用",disabled:false},

{value:"4",label:"有效",disabled:false}

],

props: {

"size":"default" //多选框组的尺寸,可选值为 large、small、default 或者不设置

},

validate:[]

}

switch 开关switchRule :

{

type:"switch",

title:"是否上架",

field:"is_show",

value:"1",//input值,

props: {

"size":"default", //开关的尺寸,可选值为large、small、default或者不写。建议开关如果使用了2个汉字的文字,使用 large。

"disabled":false,//禁用开关

"trueValue":"1", //选中时的值,当使用类似 1 和 0 来判断是否选中时会很有用

"falseValue":"0" //没有选中时的值,当使用类似 1 和 0 来判断是否选中时会很有用

},

slot: {

open:"上架", //自定义显示打开时的内容

close:"下架" //自定义显示关闭时的内容

}, //slot可以不用配置

validate:[]

}

select 选择器selectRule :

{

type: "select",

field: "cate_id",

title: "产品分类",

value: "104", //input值, multiple为true时 value为数组 [value,value,...]

props: {

"multiple": false, //是否支持多选

"clearable": false, //是否可以清空选项,只在单选时有效

"filterable": false, // 是否支持搜索

// 暂不支持远程搜索

// "remote": false, //是否使用远程搜索

// "remote-method":()=>{}, //远程搜索的方法

// "loading": false, //当前是否正在远程搜索

// "loading-text": "加载中", //远程搜索中的文字提示

"size":"default", //选择框大小,可选值为large、small、default或者不填

"placeholder": "请选择", //选择框默认文字

"not-found-text": "无匹配数据", //当下拉列表为空时显示的内容

"placement": "bottom", //弹窗的展开方向,可选值为 bottom 和 top

"disabled": false //是否禁用

},

options: [

{"value": "104", "label": "生态蔬菜", "disabled": false},

{"value": "105", "label": "新鲜水果", "disabled": false}

]

}

DatePicker 日期选择器DatePickerRule :

{

type: "DatePicker",

field: "section_day",

title: "活动日期",

value: 1519110955000 || new Date(), //input值, type为daterange,datetimerange value为数组 [start_value,end_value]

props: {

"type": "date", //显示类型,可选值为 date、daterange、datetime、datetimerange、year、month

"format": "yyyy-MM-dd", //展示的日期格式

"placement": "bottom-start", // 日期选择器出现的位置,可选值为toptop-starttop-endbottombottom-startbottom-endleftleft-startleft-endrightright-startright-end

"placeholder":"请选择获得时间", //占位文本

"confirm":false, //是否显示底部控制栏,开启后,选择完日期,选择器不会主动关闭,需用户确认后才可关闭

"size":"default", //尺寸,可选值为large、small、default或者不设置

"disabled":false, //是否禁用选择器

"clearable":true, //是否显示清除按钮

"readonly":false, //完全只读,开启后不会弹出选择器

"editable":false //文本框是否可以输入

},

validate:[]

}

TimePicker 时间选择器TimePickerRule :

{

type: "TimePicker",

field: "section_time",

title: "活动时间",

value: [], //input值, type为timerange value为数组 [start_value,end_value]

props: {

"type": "timerange", //显示类型,可选值为 time、timerange

"format": "HH:mm:ss", //展示的时间格式

"steps": [], //下拉列表的时间间隔,数组的三项分别对应小时、分钟、秒。例如设置为 [1, 15] 时,分钟会显示:00、15、30、45。

"placement": "bottom-start", // 时间选择器出现的位置,可选值为toptop-starttop-endbottombottom-startbottom-endleftleft-startleft-endrightright-startright-end

"placeholder":"请选择获得时间", //占位文本

"confirm":false, //是否显示底部控制栏,开启后,选择完日期,选择器不会主动关闭,需用户确认后才可关闭

"size":"default", //尺寸,可选值为large、small、default或者不设置

"disabled":false, //是否禁用选择器

"clearable":true, //是否显示清除按钮

"readonly":false, //完全只读,开启后不会弹出选择器

"editable":false //文本框是否可以输入

},

validate:[]

}

InputNumber 数字输入框InputNumberRule :

{

type: "InputNumber",

field: "sort",

title: "排序",

value: 0, //input值

props: {

"max": undefined, //最大值

"min": undefined, //最小值

"step": 1, //每次改变的步伐,可以是小数

"size":"default", //输入框尺寸,可选值为large、small、default或者不填

"disabled":false, //设置禁用状态

"readonly":false, //是否设置为只读

"editable":true, //是否可编辑

"precision":0 //数值精度

},

validate:[]

}

ColorPicker 颜色选择器ColorPickerRule :

{

type: "ColorPicker",

field: "coloe",

title: "颜色",

value: '#ff7271', //input值

props: {

"alpha": false, //是否支持透明度选择

"hue": true, //是否支持色彩选择

"recommend": false, //是否显示推荐的颜色预设

"size":"default", //尺寸,可选值为large、small、default或者不设置

"colors":[], //自定义颜色预设

"format":"hex" //颜色的格式,可选值为 hsl、hsv、hex、rgb,开启 alpha 时为 rgb,其它为 hex

},

validate:[]

}

Upload 上传UploadRule :

{

type: "Upload",

field: "pic",

title: "轮播图",

value: [], //input值

props: {

"type":"select", //上传控件的类型,可选值为 select(点击选择),drag(支持拖拽)

"action": "", //上传的地址,必填

"headers": {}, //设置上传的请求头部

"multiple": false, //是否支持多选文件

"data":{}, //上传时附带的额外参数

"name":"", //上传的文件字段名

"with-credentials":false, //支持发送 cookie 凭证信息

"show-upload-list":true, //是否显示已上传文件列表

"accept":"", //接受上传的文件类型

"format":[], //支持的文件类型,与 accept 不同的是,format 是识别文件的后缀名,accept 为 input 标签原生的 accept 属性,会在选择文件时过滤,可以两者结合使用

"max-size":undefined, //文件大小限制,单位 kb

"beforeUpload":()=>{}, //上传文件之前的钩子,参数为上传的文件,若返回 false 或者 Promise 则停止上传

"onProgress":()=>{}, //文件上传时的钩子,返回字段为 event, file, fileList

"onSuccess":( push, response, file, fileList)=>{

let filePath = response.data.filePath;

push(filePath);

//其他操作

}, //文件上传成功时的钩子,返回字段为 push, response, file, fileList. push(filePath) 将上传后的路径添加到value中

"onError":()=>{}, //文件上传失败时的钩子,返回字段为 error, file, fileList

"onPreview":()=>{}, //点击已上传的文件链接时的钩子,返回字段为 file, 可以通过 file.response 拿到服务端返回数据

"onRemove":()=>{}, //文件列表移除文件时的钩子,返回字段为 file, fileList

"onFormatError":()=>{}, //文件格式验证失败时的钩子,返回字段为 file, fileList

"onExceededSize":()=>{}, //文件超出指定大小限制时的钩子,返回字段为 file, fileList

"default-file-list":[

{

name: 'img1.jpg',

url: 'http://www.xxx.com/img1.jpg'

},

{

name: 'img2.jpg',

url: 'http://www.xxx.com/img2.jpg'

}

] // 默认已上传的文件列表

},

validate:[]

}

accept 文件类型: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept

相关推荐:

恋山堂掌柜
关注 关注
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
php模拟form-data文件流上传
weixin_43046729的博客
09-26 1040
近期接到一个需求需要给对方回传文件,结果对方接受文件的参数有N个都是一个参数名称,我用postman尝试人家确实可以接受到,众所周知用php上传文件封装数据参数名称是具有唯一性的所以最后选择用data文件流的方式去上传构建,下面代码附上希望对你们有所帮助 /** * curl发送数据流 */ public function PostCurl($url,$data){ $curl = curl_init($url); curl_setopt(
PHP||我的第一个动态页面(动态接收form表单提交的数据)
qq_43543920的博客
04-27 1136
1,概述 基于PHP语言,接受HTML页面的form表单中要提交的数据,并根据获取的数据生成页面。 2,写好静态页面 分析易知,此次需要的标签主要是“form”、“input”: form标签中添加了action属性,里面的值填写的是数据提交的目的地址;method属性是提交方式,默认是GET,故可以不写。 input标签中,需要提交的数据用name属性标记。 <!-- 表单 --> ...
php-form:PHP动态表单生成
05-16
PHP表单生成器 我厌倦了默认的Laravel 4表单生成器中存在的错误和怪癖,我自己编写并使其与框架无关。 功能包括: 每种形式都是其自己的对象,具有(可选)自己的行为 为表单对象设置一个模型以预先填充表单输入 从会话中获取旧输入 验证输入 警告:版本0.x期间不能保证向后兼容。 安装 composer require anlutro/form 从packagist或GitHub标签列表中选择最新的稳定版本。 Laravel 4 将“ anlutro \ Form \ ServiceProvider”添加到app / config / app.php中的提供程序列表。 其他框架/原始PHP 您将需要设置anlutro\Form\Builder的共享实例,并且该实例应注入所有Form实例中。 为了从Form实例获取输入,您应该在Builder实例上设置setRequest 。
php动态生成form表单,JQuery动态创建表单并提交,动态创建form表单并ajax提交form表单,教程案例。...
weixin_34940781的博客
03-24 308
在日常开发中,有时候在写web 应用的时候,需要临时动态构造一个form并提交。动态创建form表单方法:/***动态创建From表单*@authorxiaochuan*@date2016年03月26日*/functioncreateForm(){//取得要提交页面的URL地址varurl="{:url('add')}";//取得要提交的参数varval_id=...
PHP-Form表单
害怕也得前进
02-28 814
Form表单
php使用form-create、FormBuilder快捷创建表单
奔跑的坏蜗牛
03-30 1457
form-create、FormBuilder不用不知道,一用吓一跳!好用还漂亮 说明一下,form-create主要是用于前段的,FormBuilder是大神基于form-create写的能够用php写前端表单的, form-create本来是给前端整合用的,个人觉得主要是快速生成漂亮的表单开发的套件吧。它里面包含了主要的两套现在最流行的UI框架,ElementUI 和 Iview ,就给一个简...
JavaScript动态创建form表单并提交的实现方法
11-22
本文实例讲述了JavaScript动态创建form表单并提交的实现方法。分享给大家供大家参考,具体如下: 页面布局有些复杂的情况下,可能需要在页面中动态创建一个 form,JavaScript 创建 form 演示如下: // JavaScript ...
vue+element创建动态form表单动态生成表格的行和列
10-16
在本文中,作者详细讲解了如何使用Vue.js框架配合Element UI库来创建动态表单以及动态生成表格的行和列。本文基于实例代码,从实际操作的角度出发,介绍了技术实现的过程和方法,具有很高的参考价值。 首先,我们...
使用Vue动态生成form表单的实例代码
08-27
使用Vue动态生成form表单的实例代码 以下是关于使用Vue动态生成form表单的...使用Vue动态生成form表单的实例代码可以使用FormCreate插件来实现,FormCreate提供了丰富的实例方法和配置选项,可以满足各种业务需求。
php vue代码生成器,form-create如何动态生成vue组件?(代码示例)
weixin_35284593的博客
03-18 362
本篇文章给大家带来的内容是关于form-create如何动态生成vue组件?(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。示例let rule = [{type:'row',children:[{type:'i-col',props:{span:12},children:[formCreate.maker.input('商品名称','goods_name','ipho...
PHP表单生成器,快速生成现代化的form表单
06-03
PHP表单生成器,使用PHP快速生成现代化的form表单,包含复选框、单选框、输入框、下拉选择框等元素以及,省市区三级联动,时间选择,日期选择,颜色选择,文件/图片上传等功能
php 模拟 asp.net webFrom 按钮提交事件实例
10-25
需要php方面的项目开发,php刚刚入门,在写按钮提交过程中,asp.net里的按钮事件更好些,下面有个实例,大家可以看看
php 动态创建表单,php – 如何基于TreeBuilder对象动态构建表单?
weixin_40006965的博客
04-02 78
您的treebuilder或其中的一部分必须是可迭代的.因此,通过让它尽可能严格地表示表单,您可以使用它轻松地将配置映射到构建器.使用yml格式最简单:form:name: 'exampleForm'path: 'target_path'fields:fieldName:type: 'TextType'attr:# some additional optionsotherFieldName:typ...
【随手记】PHP中Curl模拟请求Form-Data类型接口
最新发布
辫儿哥笔记本
03-15 1173
Curl请求from-data避坑
php 构造表单,表单构建器(form)
weixin_34684094的博客
03-12 288
>[danger] 友情提示:构建器目前只支持HisiPHP Pro版本([我要升级](https://www.hisiphp.com/authorize.html))表单页面在后台管理开发中,使用频率较高,主要用于数据的新增和修改。## 如何使用HisiPHP内置的表单构建器非常的简单,无需引入任何类库,与TP的模板赋值方法一样赋值即可,页面渲染方法与TP完全一致。下面提供一段示例代码,在...
PHP - 表单(FORM)实例
UncleMark
12-15 3147
php 的表单处理往往是php应用的第一个学习单元。学好表单处理,也就开始了PHP实用之旅。先看代码和浏览结果,然后一一解释: 第一张图是HTML文件,当然也可以直接用.php做后缀,效果是一样的。我这里只截取了body的部分。 表单属于HTML的内容,但和PHP的关联相当紧密。表单的标签就是; form 标签里, action=“response.php”, 是这个表单关联的php文件...
php模拟file上传,PHP curl 模拟表单数据流multipart/form-data上传文件
weixin_29189381的博客
03-09 1435
在调用公众号接口https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=".$token."&type=".$type;经过多次测试使用下面的方式,可以正常上传//调用测试protected static $url;protected static $delimiter;protected static $i...
php 动态输出表单,PHP处理一个动态生成的表单
weixin_30080745的博客
03-18 385
我使用PHP生成一个显示博客/线程项目的HTML页面,并且我使用javascript来显示/隐藏一些细节。问题是我为每组隐藏内容生成唯一的ID,其中包含一个处理输入的表单。在处理表单时,我需要知道哪个博客项目已被编辑 - 我想使用$ _POST。我对JavaScript非常陌生,我想这可能是我可以在那里使用的解决方案。我想要这篇文章将文本保存到mysql数据库(所以调用我的一个php函数),并告...
动态生成form表单,不在为表单烦恼
热门推荐
xaboy的博客
04-23 2万+
form-create是具有数据收集、校验和提交功能的表单生成器,包含input、复选框、单选框、输入框、下拉选择框等元素以及省市区三级联动、时间选择、日期选择、颜色选择、文件/图片上传功能,支持事件扩展。 欢迎大家star学习交流:github地址 1.1版本重大更新 内部重构 新增 省市区三级联动组件 新增 组件事件扩展 优化 文件上传,时间选择等组件 待完善 [ ]...
写文章

热门文章

  • 大疆无人机无图像传输_大疆无人机靠什么传输信号 10068
  • 惠普m128fn中文说明书_惠普M128fn说明书 6567
  • 双c9计算机硕士在阿里待遇,阿里程序员感慨:硕士毕业五年,工资才一万六,感觉自己很失败... 5690
  • matlab画动态简单轨迹,利用MATLAB绘制相轨迹 5383
  • 后端如何收取多个文件_多文件上传以及java后台接受 5299

最新文章

  • debian12 python3更新pip
  • 用浏览器访问云服务器文件,浏览器访问云服务器文件
  • 微信小程序 服务器要求,解决微信小程序要求的TLS版本必须大于等于1.2的问题(windows服务器)...
2024年1篇
2021年150篇
2020年15篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家永州玻璃钢商场美陈玻璃钢小品雕塑免费咨询商场美陈布置墙面陕西玻璃钢室外雕塑厂家西湖区玻璃钢雕塑广州玻璃钢雕塑定制厂家张仲景玻璃钢雕塑图片江苏玻璃钢雕塑生产基地园林景观雕塑玻璃钢瓦雕塑户外玻璃钢雕塑生产厂家沈阳玻璃钢雕塑作品上海玻璃钢金属雕塑价格仿铜玻璃钢雕塑单价玻璃钢花盆的商品编码揭阳玻璃钢厨师雕塑唐县玻璃钢铸铜雕塑北京玻璃钢蝎子雕塑北京玻璃钢蓝精灵雕塑玻璃钢景观雕塑免费咨询卡通人玻璃钢雕塑摆件哪里有商丘玻璃钢雕塑价格苏州玻璃钢仿铜雕塑海南玻璃钢卡通草莓雕塑浙江喜妹玻璃钢雕塑江西厂家玻璃钢雕塑公园玻璃钢雕塑生产广西玻璃钢牛动物雕塑园林小品大型玻璃钢雕塑服务好南京多彩玻璃钢雕塑价位朝阳玻璃钢新娘雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化