關(guān)于輸入框或文本框添加默認前置值不可刪除且可繼續(xù)輸入

image.png

原理:

通過設(shè)置元素的data-* 屬性的值,再通過css屬性attr(data-*)獲取設(shè)置的值,然后再使用before再input前面添加一個偽類元素,再設(shè)置輸入框text-indent的值即可實現(xiàn)

html->input

<el-input  class='textarea-prepend'  v-model="messageDetail.content" placeholder="" type="textarea" :rows="3" ></el-input>

css 部分(重要)

.textarea-prepend::before {
    background-color: #f5f7fa;
    color: #909399;
    display: block;
    position: absolute;
    content: attr(data-content);    /* 極為重要,可獲取元素上攜帶的data-* 屬性的值*/
    top: 1px;
    left: 1px;
    border-radius: 4px;
    padding: 4px;
    white-space: nowrap;
    line-height: normal;
  }

js部分:

//因為此項目的需求導(dǎo)致輸入框的前置文本是不同的,前置文本的字數(shù)長度也是不同的所以使用js來動態(tài)設(shè)置data-content屬性的值和input輸入框css屬性text-indent的值
mounted() {
    const el = document.querySelector('.textarea-prepend')
    el.setAttribute('data-content', this.tenantMessageInfo.smsSign)
    const textArea = document.querySelector('.textarea-prepend .el-textarea__inner')
    textArea.style.textIndent = this.tenantMessageInfo.smsSign.length * 14 + 'px'
    this.totalContent = this.tenantMessageInfo.smsSign + this.messageDetail.content
  },

如果你的前置值是固定的就不需要js了
只需在input框上面加入data-*的屬性就可以了
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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