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. 一段js代码的分析

    function foo(a){ console.log(a+b); b=a+2; console.log(a+b); } foo(2); foo(3); var b=3; foo(4); 结果是: ...

  2. 一次处理CentOS服务器被攻击往外发广播包

    情况是这样:我们在某地托管的一台linux服务器,突然接到机房电话说是我们机器将整个IDC网络搞瘫了.外部机器没法访问IDC.  挂掉电话后:我就开始考虑,托管机器的机房是有硬防的,我本身一台机器怎么 ...

  3. 关于 log4j.additivity的说明

    log4j.additivity是 子Logger 是否继承 父Logger 的 输出源(appender) 的标志位.具体说,默认情况下 子Logger 会继承 父Logger 的appender, ...

  4. ES6的特性(译+注解)

    介绍 ES6,也叫ECMAScript2015(以下统称ES6),是ECMAScript标准的最新版本.这个标准在2015年6月份被正式批准.ES6是js语言很有意义的一次更新,也是2009年ES5被 ...

  5. [BZOJ1227][SDOI2009]虔诚的墓主人 组合数+树状数组

    1227: [SDOI2009]虔诚的墓主人 Time Limit: 5 Sec  Memory Limit: 259 MBSubmit: 1433  Solved: 672[Submit][Stat ...

  6. jQuery验证控件jquery.validate.js使用说明+中文API(转)

    一导入js库<script src="../js/jquery.js" type="text/javascript"></script> ...

  7. (转帖)关于easyui中的datagrid在加载数据时候报错:无法获取属性"Length"的值,对象为null或未定义

    结贴说明: 很感谢sp1234等人的热心帮忙和提醒,现在我主要说明下问题所在: 首先我在独立的js文件中,直接把测试数据loaddata进去datagrid是没有问题的.var kk = {" ...

  8. vijos P1234口袋的天空(Kruskal)(最小生成树)

    P1234口袋的天空 小杉坐在教室里,透过口袋一样的窗户看口袋一样的天空. 有很多云飘在那里,看起来很漂亮,小杉想摘下那样美的几朵云,做成棉花糖. 描述 给你云朵的个数N,再给你M个关系,表示哪些云朵 ...

  9. 2、Django实战第2天:app设计

    app设计:五大模块 users 用户管理 courses 课程管理 organization 机构和教师管理 operation 用户操作管理 新建上面4个模块的app manage.py@mxon ...

  10. 【kmp算法】【Rabin-Karp算法】bzoj2462 [BeiJing2011]矩阵模板

    算法就不说了,反正是基于字符串匹配的.这里比较一下kmp和Rabin-Karp算法. <法一>kmp算法. 592788 lizitong 2462 Accepted 4828 kb 68 ...