antd 的form 表单怎么回显数据_antd design Form动态增减表单项(多个),组装数据及编辑回显,选择初始值,控制添加减少表单项数量等...
新增效果图如下
编辑效果图如下
代码如下
const {
salesFollow: { info },
form: { getFieldDecorator, getFieldValue },
} = this.props;
const formItemLayout = {
labelCol: { span: 4 },
wrapperCol: { span: 12 },
};
getFieldDecorator('keys', { initialValue: info.timeList ? info.timeList : [] });
const keys = getFieldValue('keys') ? getFieldValue('keys') : [];
const paramFormItems = keys.map((k, index) => (
)}
key={k.index || k.index === 0 ? k.index : k}
required={false}
colon={false}
>
{getFieldDecorator(`paramStart_${k.id}`, {
initialValue: k.startTime ? moment(k.startTime) : null,
})(
)}
{getFieldDecorator(`paramEnd_${k.id}`, {
initialValue: k.endTime ? moment(k.endTime) : null,
})(
)}
this.remove(index)}
/>
));
可上课时间:
{
paramFormItems
}
添加可上课时间
增加,减少表单项方法
remove = (k) => {
// can use data-binding to get
const keys = this.props.form.getFieldValue('keys');
_.remove(keys,(d, i) => i === k );
// We need at least one passenger
// can use data-binding to set
this.props.form.setFieldsValue({
keys,
});
};
add = () => {
// can use data-binding to get
const keys = this.props.form.getFieldValue('keys');
const nextKeys = keys.concat([{ id: uuid }]);
uuid++;
// can use data-binding to set
// important! notify form to detect changes
this.props.form.setFieldsValue({
keys: nextKeys,
});
};
控制添加表单的个数可以通过控制keys的长度来实现
add = () => {
const { form } = this.props;
// can use data-binding to get
const keys = form.getFieldValue('keys');
if (keys.length === 1) {
message.error("最多只能添加一个!");
return;
}
const nextKeys = keys.concat([{ id: uuid }]);
// can use data-binding to set
// important! notify form to detect changes
form.setFieldsValue({
keys: nextKeys,
});
};
remove = (k) => {
// can use data-binding to get
const keys = this.props.form.getFieldValue('keys');
if (keys.length <= 1) {
message.error('请至少保留一个');
return;
}
_.remove(keys,(d, i) => i === k );
// We need at least one passenger
// can use data-binding to set
this.props.form.setFieldsValue({
keys,
});
};
提交表单组装数据方法
handleSubmit = () => {
const { form, } = this.props;
form.validateFields((errors, values) => {
const timeList = [];
for (let i = 0; i <= uuid; i++) {
if (values[`paramTime_${i}`]) {
if (!values[`paramStart_${i}`] || !values[`paramEnd_${i}`]) {
message.error('请选择上课时间');
return;
}
const time = values[`paramTime_${i}`] ? moment(values[`paramTime_${i}`]).format('YYYY-MM-DD') : null;
const start = values[`paramStart_${i}`] ? moment(values[`paramStart_${i}`]).format('HH:mm:ss') : null;
const end = values[`paramEnd_${i}`] ? moment(values[`paramEnd_${i}`]).format('HH:mm:ss') : null;
timeList.push({
queryStartDate: `${time } ${ start}`,
queryEndDate: `${time } ${ end}`,
});
}
}
console.info('timeList', timeList);
});
};
数据
组装数据前
组装数据后
引用到的组件
import moment from 'moment';
import { Button, Card,Cascader, Row, Col, message, DatePicker, Input, Form, Icon } from 'antd';
import TimePicker from 'antd/es/time-picker';
const FormItem = Form.Item;
let uuid = 100000;
编辑回显数据如下
因为用的是时间控件,所以提交和编辑回显的时候都需要做时间格式化处理,如果是其他控件可以省略这一步。
新增表单时控制初始化数据可以通过控制keys的长度来实现,如默认显示2个
getFieldDecorator('keys', { initialValue: info.timeList.length > 0 ? info.timeList : [1,2] });
antd 的form 表单怎么回显数据_antd design Form动态增减表单项(多个),组装数据及编辑回显,选择初始值,控制添加减少表单项数量等...相关推荐
- 提交表单到弹出窗口 Submit a form into a popup
实例目的:一些网站不允许被包含在iframe中(例如paypal standard),为了实现让用户仍然留在本站的目的,下面的实例可供参考. 方法一: HTML的方式 DEMO <form id ...
- 【实习小tip】多层dialog弹窗遮罩问题、elementUI的form表单组件的select框在只读的情况下没办法拿到传来的数据、从弹窗子组件获取数据后需要刷新页面
解决elementui多层dialog弹窗遮罩问题 弹窗套娃出现了整个屏幕都是遮罩层的问题,需要鼠标点击一下才能正常. 在弹窗组件代码上加上 append-to-body 就可以了,表示这个弹窗是嵌在 ...
- vue表单提交数组_ajax传递数组、form表单提交对象数组
在JSP页面开发中,我们常常会用到form表单做数据提交,由于以前一直只是使用form表单提交单个对象,只要表单文本域的name值和接收的对象的属性名一致,那么传值就没有什么问题.不过,在前几天的开发 ...
- html表单的常用属性有哪些,html/form表单常用属性认识
1.form表单常用属性练习 .form1 { margin: auto; height: 900px; width: 500px; text-align: center; line-height: ...
- shiro表单登录认证及退出(自定义form认证器)
博主地址:http://blog.csdn.net/zcl_love_wx 注意:此文是基于springMVC框架的,所以关于springMVC的配置这里不说,后面有时间专门写一个shiro整合spr ...
- html表单 传递 符号,HTML源码中 form 标签的 enctype 属性
定义:enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码.默认地,表单数据会编码为 "application/x-www-form-urlencoded".即在发 ...
- 表单php跳转页面跳转,form表单页面跳转方式提交练习
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 //form表单提交练习 /*新建一个form.html网页用来书写前端HTML表单*/ 表单提交练习 姓名: 年龄: 电话: 地址: QQ: 自我评价: ...
- html表单边框怎么加颜色?html form标签的边框颜色实例
本篇文章主要的讲述了HTML表单的边框加颜色,可以更改任何你想要的颜色都可以,有实例解析,方便观看,接下来让我们一起来看看这篇关于HTML表单的边框颜色的文章吧 打造全网web前端全栈资料库(总目录) ...
- form通过ajax提交表单,Jquery通过Ajax方式来提交Form表单
今天刚好看到Jquery的ajax提交数据到服务器的方法,原文是: 保存数据到服务器,成功时显示信息. jQuery 代码: $.ajax({ type: "POST", url: ...
- html表单调用js方法,使用js提交form表单的两种方法
提交form表单的时候瑶族一些简单的验证,验证完后才能提交,避免无效提交. 1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在前端页面写:有两种方法,一种是用sub ...
最新文章
- 当您访问未加密的HTTP网站时,谁能看到您的数据?—Vecloud微云
- cookie中文乱码
- python怎么复制上面的语句_JAVA、python、Go的复制语句
- Remove One Element(贪心)
- 2020年跨行业跨领域工业互联网平台
- java成员变量的初始化_Java成员变量初始化过程
- Spring CGLlB动态代理
- mini2440-Openwrt启动信息
- Eclipse·Maven·构建SpringMVC简单工程-3
- 7时过2小时是几时_小姐姐花1万7租了一个2小时男友,全程上演偶像剧......
- Android应用源码英语四级单选助手答题类app源码下载
- 海量数据处理:经典实例分析
- 关于数据结构(c语言)中结构体声明的LNode, *LinkList
- 为资产分类定义折旧范围_2广东省农村集体经济组织固定资产分类及折旧办法(4月15日)...
- 为Exynos4412移植2022版U-Boot(一)步骤及其原理分析
- graphpad做柱状图_轻松搞定各种柱状图
- 计算机白板培训报道,学习电子白板心得体会
- Word文件总页码不含首页和目录设置方法
- 本地无需安装数据库,实现plsql远程连接数据库
- tinyint(1)与tinyint(3),int(1)与int(3),tiny(1)与int(1)区别
热门文章
- 智能卡检测控制系统检测m1这么操作_多联机制冷剂灌注操作方法
- 天龙八部linux 换win,Linux从菜鸟到大师之天龙八部 第三部文本编辑处理.doc
- python time sleep 阻塞 异步_python 之 并发编程(进程池与线程池、同步异步阻塞非阻塞、线程queue)...
- linux图形界面漏洞,ManageEngine DesktopCentral任意文件上传漏洞(CVE-2014-5007)
- ryzen linux 搭配显卡,R5 1500X配什么显卡好 适合AMD锐龙5 1500X搭配的显卡推荐
- python函数定义和调用练习_python函数的定义和调用
- MySQL(19)-----日期和时间函数
- 使用idea导入远程git版本库项目
- JVM对象分配和GC分布【JVM】
- HDU 6330--Visual Cube(构造,计算)