AntDesign Form表单的自定义校验

项目antD版本:3.19

使用antD的form来管理我们的表单的时候,我们有时候需要自定义规则校验某个字段,这个时候就可以在rules里面添加validator属性,指向我们定义的方法。


      {getFieldDecorator('pmEndTime', {
           initialValue: moment('18:00:00', 'HH:mm:ss'),
           rules: [
             {
                validator: this.pmEndValid
             }
           ],
      })(
           
      )}

pmEndValid方法:

pmEndValid = (rule, value, callback) => {
    const { form } = this.props;
    if (!value) {
      // 下午结束时间没有值 执行:
      callback('请选择下午结束时间')
    } else if (!form.getFieldValue('pmStartTime')) {
      // 下午开始时间没有值 执行:
      // callback('请选择下午开始时间')
      callback()
    } else if (value.valueOf() < form.getFieldValue('pmStartTime').valueOf()){
      // 上午开始和结束时间都有值,并且开始时间大于结束时间
      callback('结束时间要大于开始时间')
    }
    callback()
  }

无论哪种逻辑,必须要执行一个callback

其中:

callback('123'):校验不通过并且返回提示123

callback():校验通过

你可能感兴趣的:(知识点,react,elementui,vue.js,sass)