日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

div模拟textarea文本框,输入文字高度自适应,且实现字数统计和限制

發(fā)布時間:2023/12/31 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 div模拟textarea文本框,输入文字高度自适应,且实现字数统计和限制 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

需求:

文本框可根據(jù)輸入內(nèi)容高度自適應,不帶滾動條,高度可變的那種,我搜索了很多,發(fā)現(xiàn)textarea無法實現(xiàn)我的需求,scrollHeigh這個無法獲取實際內(nèi)容的高度(我用的是那種簡單的,可能我寫的哪里不對吧;那種代碼很多的,我又不想那么去做,麻煩。。。),所以只能div模擬textarea文本框了。

使用div模擬textarea文本框,輸入文字高度自適應,且實現(xiàn)字數(shù)統(tǒng)計和限制,輸入字數(shù)超出65時,統(tǒng)計數(shù)字會變紅,作為提示,當div失去焦點時,字數(shù)會剪切為最大限制字數(shù)65。

// 可實現(xiàn)div模仿文本框進行編輯 contenteditable="true"

其實,本來實時限制用戶輸入字數(shù),也就是當用戶輸入字數(shù)達到65時,不允許再次輸入,體驗會更好。但是當我這樣做時,div里的光標會跑到div的最前面,再次輸入時導致后面字被剪切掉,我無法獲取和定位光標,所以只能設置當blur,失去焦點時,再剪切字數(shù)(當然,光標的獲取和定位應該可以實現(xiàn),有需求的小伙伴,可以自己試試 ^_^)。

效果圖:

? ? ? ? ? ? ? ?

HTML:

<div class="add-doss-retpl"><div>意向備注 <span class="c-gy"><span :class="addTotal > 65 ? 'hx-red' : ''" > {{addTotal}}</span>/65</span></div><div class="add-doss-foremark" id="add-doss-foremark" @input="addDossInput($event)" @blur="addDossBlur($event)" contenteditable="true"></div> </div>

CSS:?

.add-doss-retpl{background-color: #fff;padding: 10px;.add-doss-foremark{width:100%;margin: 10px 0;border:#e1e1e1 solid 1px;padding: 10px 8px;}.hx-red{color:red;}}

?VUE.js:

<script>export default {data:function(){return {addInremark:'', // 意向備注addTotal:0, // 統(tǒng)計輸入框里的字數(shù)}},activated:function () {this.addInremark = (JSON.parse(sessionStorage.getItem('customerComments')) || JSON.parse(sessionStorage.getItem('customerComments'))=='') ? JSON.parse(sessionStorage.getItem('customerComments')) : (this.$route.query.customerComments?this.$route.query.customerComments:'');// 輸入框賦初始值document.getElementById('add-doss-foremark').innerHTML = this.addInremark;this.getAddTotal(); // 字數(shù)統(tǒng)計},watch:{// 監(jiān)聽意向備注(統(tǒng)計字數(shù)&&存儲)'addInremark'(){this.getAddTotal();sessionStorage.setItem('customerComments', JSON.stringify(this.addInremark));},},beforeRouteEnter(to, from, next){if (from.name == "dossCustomer" || from.name == "clientDetail" ) {sessionStorage.removeItem('customerComments'); }next();},methods:{// 監(jiān)聽意向備注輸入addDossInput(e){this.addInremark = e.target.innerHTML;},// 監(jiān)聽意向備注失去焦點addDossBlur(e){if(e.target.innerHTML.length > 65){this.addInremark = e.target.innerHTML.slice(0,65);let addRe = document.getElementById('add-doss-foremark');addRe.innerHTML = this.addInremark;}else {this.addInremark = e.target.innerHTML;}},// 字數(shù)統(tǒng)計getAddTotal(){this.addTotal = this.addInremark.length;}}} </script>

?

總結(jié)

以上是生活随笔為你收集整理的div模拟textarea文本框,输入文字高度自适应,且实现字数统计和限制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。