vue.js+element UI,输入框的rules validator中检测用户名是否已经被使用,没有效果?

      userRules: {
        username: [
          { required: true, message: '请输入新的用户名称', trigger: 'blur' },
          { min: 1, max: 20, message: '用户名的长度不得超过20个字符', trigger: 'blur' },
          { validator: validateName, trigger: 'blur' }
        ],
        password: [
          { required: true, message: '请设置登录密码', trigger: 'blur' },
          { min: 6, max: 15, message: '长度在 6 到 15 个字符', trigger: 'blur' }
        ],
        confirmPassword: [
          { required: true, message: '请确认登录密码', trigger: 'blur' },
          { min: 6, max: 15, message: '长度在 6 到 15 个字符', trigger: 'blur' },
          { validator: validatePass, trigger: 'blur' }
        ],

console日志已经打印'该名称已经被使用',但是输入框没有任何反应:
是validator里面不能用后端api调用吗?

    var validateName = (rule, value, callback) => {
      console.log('validateName,value:', value)
      if (value === '') {
        callback(new Error('请输入新的用户名称'));
      } else {
        apiUserNameExists(value)
          .then(response => {
            console.log('validateName,response:', response)
            if (response.data.exists) {
              console.log('该名称已经被使用')
              callback(new Error('该名称已经被使用!'));
            }
          })
          .catch((err) => {
            console.log(err)
          })
        callback();
      }
    };
阅读 10k
1 个回答
推荐问题