1.Input Enter事件

<input onKeyUp={this.onKeyUp} onPressEnter={this.enter} />

onKeyUp = (e) => {
if(e.keyCode === 13){
console.log("我是enter")
}
} enter= (e) => {
console.log("我是enter")
}

2.表单默认值(读取后台数据)

<FormItem
{...formItemLayout}
label="手机号码"
>
{getFieldDecorator('phone', {
rules: [{
required: true, message: '请输入手机号码',
}],
initialValue:info.phone?info.phone:'',
})(
<Input placeholder="请输入手机号码" />
)}
</FormItem>

initialValue:info.phone?info.phone:”,
必须使用initialValue来动态赋值

3.表单时间

const FormItem = Form.Item;

<Form hideRequiredMark onSubmit={this.handleSubmit}>
<FormItem
{...formItemLayout}
label="时间"
>
{getFieldDecorator('joinTime', {
rules: [{
required: true, message: '请选择时间',
}],
initialValue:info? moment(info.joinTime, "YYYY-MM-DD"):''
})(
<DatePicker placeholder='请选择时间' format="YYYY-MM-DD" />
)}
</FormItem>
</Form> //提交事件
handleSubmit = (e) => { //新增、编辑=提交
const { newAdd ,page} = this.state;
e.preventDefault();
this.props.form.validateFieldsAndScroll((err, values) => {
if (!err) {
const value = {...values, userId:newAdd,'joinTime': values['joinTime'].format('YYYY-MM-DD'),};
this.props.dispatch({
type: 'member/saveAgentInfo',
payload: value,
})
}
});
}

使用validateFieldsAndScroll()获取表单数据后joinTime:moment(),需要使用format()转化一下

4.清空表单

setModal1Hide(modal1Visible) {
this.setState({
modal1Visible:modal1Visible,
})
this.props.dispatch({
type: 'member/delFrom',
payload: {
oneMemberInfo:null
},
});
this.props.form.resetFields() //清空所有
}

5.表单中嵌套动态选择框

<FormItem {...formItemLayout} label="店名">
{getFieldDecorator('agentId', {
rules: [{
required: true, message: '选择加盟店',
}],
initialValue:OrderByOrderNo.storeName
})(
<Select defaultValue={OrderByOrderNo.storeName} className={styles.typeBtn}>
{AgentList.map(d => <Option value={d.userId} >{d.storeName}</Option>)}
</Select>
)}
</FormItem>

6.表单中使用正则表达式验证手机号

<FormItem
{...formItemLayout}
label="手机号码"
>
{getFieldDecorator('phone', {
rules: [{
required: true, message: '请输入手机号码',
}, {
pattern: /^1\d{10}$/, message: '手机号格式错误!',
}],
initialValue:oneMemberInfo?oneMemberInfo.phone:'',
validateTrigger:'onBlur'
})(
<Input placeholder="请输入手机号码" />
)}
{
newAdd
?
''
:
<span className="ant-form-text" style={{color:'#389e0d'}}>
*手机号为加盟店登录账号及初始密码,请确保正确
</span>
}
</FormItem>

.

ant design pro 表单的更多相关文章

  1. 实现Ant Design 自定义表单组件

    Ant Design 组件提供了Input,InputNumber,Radio,Select,uplod等表单组件,但实际开发中这是不能满足需求,同时我们希望可以继续使用Form提供的验证和提示等方法 ...

  2. ant design 自定义表单验证大全

     需求是 账号名可以是手机号也可以是邮箱 要做手机号和邮箱的验证,官网的那个验证规则不匹配  怎么自定义验证规则?  一:组件部分 <Form horizontal> <Row gu ...

  3. ant design pro如何实现分步表单时,返回上一步值依然被保存

    首先,分步表单ant design pro支持,看官方Demo即可,那么如何实现如题,关键在于设置initialValue {getFieldDecorator('name', { initialVa ...

  4. ant design pro (十三)advanced 错误处理

    一.概述 原文地址:https://pro.ant.design/docs/error-cn 二.详细 2.1.页面级报错 2.1.1.应用场景 路由直接引导到报错页面,比如你输入的网址没有匹配到任何 ...

  5. Ant Design Pro入门教程,安装,运行(V5 Typescript版)

    [前言] 找了很多Admin模板,最后还是看中了AntDesignPro这个阿里巴巴开源的Admin框架,长这样(还行吧,目前挺主流的): 官网地址:https://pro.ant.design/in ...

  6. (二)React Ant Design Pro + .Net5 WebApi:前端环境搭建

    首先,你需要先装一个Nodejs,这是基础哦.如果没有这方面知识的小伙伴可以在园子里搜索cnpm yarn等关键字,内容繁多,此不赘述,参考链接 一. 简介 1. Ant Design Pro v5 ...

  7. ant design pro (八)构建和发布

    一.概述 原文地址:https://pro.ant.design/docs/deploy-cn 二.详细 2.1.构建 当项目开发完毕,只需要运行一行命令就可以打包你的应用: npm run buil ...

  8. ant design pro (七)和服务端进行交互

    一.概述 原文地址:https://pro.ant.design/docs/server-cn Ant Design Pro 是一套基于 React 技术栈的单页面应用,我们提供的是前端代码和本地模拟 ...

  9. Ant Design Pro+Electron+electron-builder实现React应用脱离浏览器,桌面安装运行

    ant-design-pro ----> version :2.3.1 由于网上Ant Design Pro+Electron的资料太少,我就贡献一点经验   最近需要讲AntD Pro项目(以 ...

随机推荐

  1. eclipse中的project 和classpath文件的具体作用

    项目->右键 Properties-> java Build Path -> source: xxx/data xxx/src 体现在 .classpath文件中: .classpa ...

  2. 实例解析嵌套的JSON格式数据

    关于JSON数据格式的基本知识和概念,参看: http://www.cnblogs.com/zouzf/archive/2012/03/31/2426646.html <span style=& ...

  3. Corosync 配置描述

    NAME corosync.conf - corosync executive configuration file SYNOPSIS /etc/corosync/corosync.conf DESC ...

  4. ionic3 关于屏幕方向问题

    关于屏幕方向问题 使用ionic-native中的screen-orientation ionic cordova plugin add cordova-plugin-screen-orientati ...

  5. AC日记——[Sdoi2008]Cave 洞穴勘测 bzoj 2049

    2049 思路: lct模板: 代码: #include <cstdio> #include <cstring> #include <iostream> #incl ...

  6. UVa1599 Ideal Path(双向bfs+字典序+非简单图的最短路+队列判重)

    题目大意: 对于一个n个房间m条路径的迷宫(Labyrinth)(2<=n<=100000, 1<=m<=200000),每条路径上都涂有颜色,颜色取值范围为1<=c&l ...

  7. [JSOI2008]Star War

    星球之间互相直接或间接地连接帝国开始使用死星有计划地摧毁反抗军占领的星球给出星球间隧道的连通情况,已经帝国打击的顺序要求以尽量快的速度求出每一次打击之后反抗军占据的星球的联通快的个数(若两个星球,直接 ...

  8. 第2天-css快速入门

    css是什么 css(cascading style sheet,可以译为“层叠样式表”),是一组格式设置规则,用于控制web页面的外观 如何让一个标签具有样式 第一步:必须保证引入方式正确 第二步: ...

  9. volatile 和 Interlocked

    class Volatile_Test3 { ; public static void Test() { count = ; Task[] tasks = ]; ; i < tasks.Leng ...

  10. Java中应用多线程的场景?

    最典型的应用比如tomcat,tomcat内部采用的就是多线程,上百个客户端访问同一个web应用,tomcat接入后都是把后续的处理扔给一个新的线程来处理,这个新的线程最后调用到我们的servlet程 ...