一,利用focus(),获取焦点直接跳转
this.$refs.addForm.validate(async valid => {
if (valid) {
do something()
} else {
setTimeout(()=>{
var isError= document.getElementsByClassName("is-error");
isError[0].querySelector('input').focus();
},100);
return false;
}
})
二,利用 ref 获取节点跳转,滚动到对应位置
this.$refs.addForm.validate(async (valid, object) => {
if (valid) {
do something()
} else {
this.scrollView(object)
}
})
调用下面的scrollView()
scrollView(object) {
console.log(object,1111) // 非法数组的集合
for (const item in object) {
console.log(item,'ppppp') // 非法数据的位置
let dom = this.$refs[item] // 获取位置信息,上面要定义好ref="this.$refs[item]"
console.log(dom,2222) // 获取节点
if (Object.prototype.toString.call(dom) !== '[object Object]') { // 这里是针对遍历的情况(多个输入框),取值为数组
dom = dom[0]
}
dom.$el.scrollIntoView({
block: 'center', // 值有start,center,end,nearest,当前显示在视图区域中间
behavior: 'smooth' // 值有auto、instant,smooth,缓动动画(当前是慢速的)
})
break;
}
},