之前遇到了一个小问题,就是要自定义校验规则,但是加上了自定义校验规则之后,左上角的小红星星不显示了,按照网上的说法在element ui 元素上加了required,又遇到了新问题,在输入数据,一点一点删掉之后,下边的提示竟然出现了校验默认的英文。

在这里插入图片描述

直接上正确代码,再总结问题

<el-form-item label="软件名称" prop="softwareName">
              <el-col :span="24">
                <el-input v-model="postForm.softwareName" placeholder="请输入软件名称" style="width: 250px;" />
              </el-col>
            </el-form-item>
            <el-form-item label="软件版本" prop="softwareVersion">
              <el-col :span="24">
                <el-input v-model="postForm.softwareVersion" placeholder="请输入软件版本" style="width: 250px;" />
              </el-col>
            </el-form-item>
export default {
  name: 'CreateForm',
  data() {
    // 软件名称校验
    var checkSoftwareName = (rule, value, callback) => {
      if (value === '') {
        return callback(new Error('软件名称不能为空'))
      } else {
        if (!(/^[0-9a-zA-Z\u4e00-\u9fa5]+$/.test(value))) {
          callback(new Error('软件名称由数字字母和中文组成'))
        } else {
          callback()
        }
      }
      callback()
    }
    // 软件版本校验 名称+版本唯一性校验
    var validateSoftwareVersion = (rule, value, callback) => {
      if (value === '') {
        callback(new Error('软件版本不能为空'))
      } else {
        if (!(/^\d+\.\d+\.\d+$/.test(value))) {
          callback(new Error('版本号不合法'))
        }
        callback()
      }
    }
    return {
      postForm: {
        softwareName: '',
        softwareVersion: ''
      },
      // 校验
      rules: {
        softwareName: [
          { required: true, validator: checkSoftwareName, trigger: 'blur' }
        ],
        softwareVersion: [
        // required放在这一样有小星星,还不会出现原生英文的问题
          { required: true, validator: validateSoftwareVersion, trigger: 'blur' }
        ]
      }
    }
  }
 }

总结一下问题
不能再UI元素上添加这个,会导致默认的英文提示,应该放到下边
在这里插入图片描述

Logo

前往低代码交流专区

更多推荐