天天看點

elementui 的 el-dialog 裡面擷取不到dom元素問題,設定表單滾動條到頂部問題

el-dialog 裡面是一個表單,表單元素比較多,是以頁面有滾動條。需要設定每次打開表單的時候,滾動條在頂部。

頁面有一個按鈕,點選按鈕打開el-dialog 彈框。

一開始在網山搜尋,有給元素設 id ,然後用 document.getElementById("idName").scrollTop = 0; 來設定滾動條到頂部。

也有說給元素設定 ref="box",然後在代碼中 使用 this.$refs.box.scrollTop = 0 ; 來設定滾動條 到頂部。

如下代碼:

methods(){
    handleBtnclick(){
        this..dialogFormVisible = true;
        //document.getElementById("myform").scrollTop = 0;
        this.$refs.box.scrollTop = 0;
    }  
}      

上面兩種方法都是直接報錯,後來才知道是擷取不到元素。因為dialog在初始的時候沒有加載,自然調用不到,當dialog顯示時,需要用到nextTick,使dom更新之後再調用。就可以調用到了。

修改後代碼如下:

methods(){
    handleBtnclick(){
        this..dialogFormVisible = true;
        this.$nextTick(() => {
          // this.$refs.box.scrollTop = 0;
          document.getElementById("myform").scrollTop = 0;
        });
        
    }  
}      

用到 nextTick 之後,擷取id的方法,或者 ref 的方法都可以。