React+Antd4 Form开始、结束(截止)日期校验

React+Antd4 Form开始、结束(截止)日期校验

需要用到的知识点

1、Ant Design 4+
2、moment.js (http://momentjs.cn/) 非必要

场景

在项目中经常会碰到需要设置日期,而且往往需要设置两个日期,这两个日期有需要相互约束,通常是一个开始日期一个截止日期。
在这里插入图片描述
这个时候一般都需要校验,开始日期不可以晚于结束日期。

如何校验?

这里应用的是Antd4里的date-picker组件,组件自带选择日期的onChange方法,还需要应用到form表单值域的获取,这里不做赘述。在开始日期的onChange方法中,通过表单拿到结束日期,在结束日期的onChange方法中,通过表单拿到开始日期 便于校验两个日期的大小
而日期的大小校验有很多种方法,可以用过时间戳,也可以用moment.js来校验,moment(xxx)>moment(yyy),类似这种可以看下面代码

// 这里是组件代码
<Row gutter={16}>
  <Col span={12}>
   //评估开始日期
    <Form.Item {...formParams.inspectionPlanAssessStartTime}>
      <DatePicker onChange={this.startTime} disabled={stopUse} style={{width: 220}}/>
    </Form.Item>
  </Col>
  <Col span={12}>
  	//评估结束日期
    <Form.Item {...formParams.inspectionPlanAssessEndTime}>
      <DatePicker onChange={this.endTime} disabled={stopUse} style={{width: 220}}/>
    </Form.Item>
  </Col>
</Row>
//这里是方法代码
//评估开始日期
 startTime = (date) => {
 //在开始日期的onChange方法中,通过表单拿到结束日期
   const endTime = this.queryForm.current.getFieldsValue().inspectionPlanAssessEndTime;
   if(endTime && moment(endTime)<moment(date)){
     this.queryForm.current.setFieldsValue({
       inspectionPlanAssessStartTime:null
     });
     return message.warn("开始日期不能晚于结束日期")
   }
 }
 //评估结束日期
 endTime = (date) => {
 //在结束日期的onChange方法中,通过表单拿到开始日期
   const startTime = this.queryForm.current.getFieldsValue().inspectionPlanAssessStartTime;
   if(startTime && moment(startTime)>moment(date)){
     this.queryForm.current.setFieldsValue({
       inspectionPlanAssessEndTime:null
     });
     return message.warn("开始日期不能晚于结束日期")
   }
 }

至此我们就完成了开始日期和结束日期的校验,也就可以避免我们在保存的时候开始日期比结束日期还要晚的情况

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Antd是一个基于React开发的UI组件库,提供了一系列美观、易用的组件,能够帮助我们快速构建前端界面。而一个完整的后台项目框架首先需要具备以下几个方面的内容: 1. 路由管理:一个后台项目通常会有很多不同的页面,因此需要一个路由管理器来管理不同页面之间的切换。React Antd提供了React Router库来实现路由管理,我们可以通过配置路由信息来指定每个页面对应的路径,帮助我们实现页面间的跳转。 2. 权限管理:后台项目通常会有一些权限控制的需求,比如某些用户只能访问特定的页面或者执行特定的操作。React Antd提供了权限管理相关的组件,如Menu、Button等,我们可以根据不同的用户角色显示或隐藏某些功能。 3. 状态管理:一个完整的后台项目通常会有很多需要共享的状态,比如用户信息、页面数据等。React Antd本身并不提供状态管理解决方案,但可以与Redux、Mobx等状态管理工具配合使用,帮助我们管理全局的状态数据。 4. 表单验证:后台项目中经常需要进行表单验证,以确保用户输入的数据符合要求。React Antd提供了Form组件,可以方便地实现表单验证功能,如必填项校验、数据格式校验等。 5. 数据交互:后台项目通常需要与后端进行数据交互,如获取用户信息、提交表单数据等。React Antd并没有提供专门的数据交互解决方案,通常我们可以使用Axios等第三方库来实现数据的请求和响应。 综上所述,React Antd提供了一套美观、易用的UI组件,可以帮助我们快速构建后台项目。但在构建一个完整的后台项目框架时,我们还需要根据项目的具体需求,结合以上提到的几个方面来进行完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值