// 表單驗證 this.$refs.form.validate((valid, object) => { if (valid) { // 正確邏輯處理 //alert('submit!') } else { let split = '' for (let i in object) { let dom = this.$refs[i] if (Object.prototype.toString.call(dom) !== '[object Object]') { //這里是針對遍歷的情況(多個輸入框),取值為數組 dom = dom[0] // 第一個未填寫必填項的表單被記錄,這個是為了處理如何把校驗未成功的第一個面板展開 split = dom.prop let index = split.indexOf('.') let last = split.lastIndexOf('.') // 通過未填寫的表單索引展開折疊面板 this.activeName = Number(split.slice(index + 1, last)) break } dom.$el.scrollIntoView({ //滾動到指定節點 block: 'center', //值有start,center,end,nearest,當前顯示在視圖區域中間 behavior: 'smooth' //值有auto、instant,smooth,緩動動畫(當前是慢速的) }) } console.log('error submit!!') return false } })