vue+Element表单验证之滚动条定位到校验未通过的表单控件的位置

Posted 几何柒期

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue+Element表单验证之滚动条定位到校验未通过的表单控件的位置相关的知识,希望对你有一定的参考价值。

需求:提交表单时,页面定位到第一个校验失败的位置

代码示例:

   // 点击提交按钮
  clickToAdd(state) {
    // elementUI的form表单校验:
    
this.$refs.form.validate((valid) => {
      
if (valid) {   this.$emit(\'clickToAdd\', false, this.form, state) // 如果校验通过,在父组件调用接口   } else {   // 滚动条定位到第一个校验失败的div的位置   this.needLocateToErr && this.locateToErr()   return false } }) }

关键:

    // 滚动条定位到第一个校验失败的div的位置
    locateToErr() {
      setTimeout(() => {
        const errorDiv = document.getElementsByClassName(\'is-error\')
        errorDiv[0].scrollIntoView()
      }, 0)
    },

因为是在后期提出:需要定位到第一个校验失败的位置的需求,这时候已经有很多页面了。一页一页去修改工程比较浩大,所以借用了elementUI校验失败的时候自带的class:is-error;以求做出较小的修改完成需求;

以上是关于vue+Element表单验证之滚动条定位到校验未通过的表单控件的位置的主要内容,如果未能解决你的问题,请参考以下文章

vue表单校验

elemetn表单控件---未通过校验字段提交时自动定位到该字段位置

vue elementUI表单的常用校验

vue element ui表单验证不通过,滚动到页面上第一个验证失败的输入框位置

element-ui表单部分验证报错

element-ui 表单组件的prop属性