element多行輸入框的高度計(jì)算問題

最近做項(xiàng)目時(shí),遇到一個(gè)問題。

關(guān)于element 多行輸入框高度問題,在編輯的時(shí)候,高度很正常,自適應(yīng),寫幾行,高度就多高。但是編輯完成保存后,再次打開高度就多了很多,多了好幾行空白??丛创a知道高度是計(jì)算得出的,需求又要求高度自適應(yīng),樣式肯定是不行了,想別的辦法,然后得出了兩個(gè)方案。如下:

方法一:

在獲取到數(shù)據(jù)后,對數(shù)據(jù)進(jìn)行在處理,使得輸入框的高度重新計(jì)算。

setTimeout(() => {

? this.lists.forEach(list => {

? ? if (list.hasOwnProperty('children')) {

? ? ? var o_name = list.name;

? ? ? ? list.name = o_name + ' ';

? ? ? ? ? list.children.forEach(kr => {

? ? ? ? ? ? if (kr.hasOwnProperty('children')) {

? ? ? ? ? ? ? var kr_name = kr.name;

? ? ? ? ? ? ? ? ? kr.name = kr_name + ' ';

? ? ? ? ? ? ? ? ? kr.children.forEach(e => {

? ? ? ? ? ? ? ? ? ? var e_name = e.name;

? ? ? ? ? ? ? ? ? ? ? ? e.name = e_name + ' ';

? ? ? ? ? ? ? ? ? })

? ? ? ? ? ? ? }

? ? ? ? ? })

? ? ? }

? ? })

? }, 100);

方法二:

改變輸入框的類型,默認(rèn)是單行輸入框,再次編輯的時(shí)候改變輸入框類型為多行輸入框,也是為了重新計(jì)算高度

<el-input

? :type="input_type"

? :placeholder="'請輸入(最多不超過500字)'"

? v-model="scope.row.name"

? class="ipt-hover edit_name"

? :ref="!scope.row.id?'kr_input':'editInput2'"

? maxlength="500"

? @blur="save($event,scope.row)"

? @focus="()=>rowClick(index,scope.$index)"

? autosize

? clearable>

</el-input>

data里先定義input_type:'text'

在獲取數(shù)據(jù)的時(shí)候改變input_type為textarea 即可

總結(jié):其實(shí)兩種方案都是為了讓輸入框能重新計(jì)算高度,只不過第二種更簡單,推薦?。▋H供參考)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容