vue element表单验证为空时自动定位到对应位置

方法一:

submitAuthForm(formName) {
            this.$refs[formName].validate((valid, invalidFields) => {
                if (valid) {
                    console.log("执行方法")
                } else {
                    for (let obj in invalidFields) {
                        this.$refs[obj].focus();
                        break;
                    }
                    return false;
                }
            })
        }

 方法二:

this.$refs[formName].validate((valid) => {
    if (valid) {

    } else {
        setTimeout(() => {
            var isError = document.getElementsByClassName("is-error");
            if (isError[0].querySelector('input')) {
                isError[0].querySelector('input').focus();
            } else if (isError[0].querySelector('textarea')) {
                isError[0].querySelector('textarea').focus();
            }
        }, 1)
        return false;
    }
})

 方法三:

setTimeout(() => {
  if (document.querySelector('.el-form-item__error')) {
     // eslint-disable-next-line no-unused-expressions
     document.querySelectorAll('.el-form-item__error')[0]
       ?.parentNode?.scrollIntoView({
       block: 'start',
       behavior: 'smooth'
     })
  }
}, 1)

 

posted @ 2020-06-15 16:49  wjs0509  阅读(1651)  评论(0编辑  收藏  举报