首頁 > web前端 > js教程 > 即時監控文字方塊輸入字數詳解

即時監控文字方塊輸入字數詳解

小云云
發布: 2018-01-19 09:06:24
原創
2299 人瀏覽過

本文主要為大家分享一篇即時監控文字方塊輸入字數的實例程式碼,具有很好的參考價值,希望對大家有幫助。一起跟著小編過來看看吧,希望能幫助大家。

需求:即時監控文字輸入框的字數,並加以限制

#1、即時監控目前輸入字數,直接使用onkeyup事件方法,給輸入框加maxlength屬性限制長度。如:

1

2

3

4

<p>

  <textarea id="txt" maxlength="10"></textarea>

  <p><span id="txtNum">0</span>/10</p>

 </p>

登入後複製

1

2

3

4

5

var txt = document.getElementById("txt");

 var txtNum = document.getElementById("txtNum");

 txt.addEventListener("keyup"function(){

  txtNum.textContent = txt.value.length;

 })

登入後複製

此時已可以完成基本的監控功能,存在的問題:當輸入英文時正常,但輸入中文時,監控的數字會隨拼音長度而變化。

2、解決方法:

compositionstart 事件觸發於一段文字的輸入之前(類似於keydown 事件,但該事件僅在若干可見字元的輸入之前,而這些可見字元的輸入可能需要一連串的鍵盤操作、語音辨識或點擊輸入法的備選字)。

compositionend 是對應的就是一段文字輸入的事件。

這兩個屬性有點類似於“開關”,如:開始進行中文輸入的拼音時開關打開,不在改變監測得到的長度數值,完整輸入一個或是一串文字後,開關關閉,得到監測的數值長度。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

var txt = document.getElementById("txt");

 var txtNum = document.getElementById("txtNum");

 var sw = false;  //定义关闭的开关

 txt.addEventListener("keyup"function(){

  if(sw == false){

   countTxt();

  }

 });

 txt.addEventListener("compositionstart"function(){

  sw = true;

 });

 txt.addEventListener("compositionend"function(){

  sw = false;

  countTxt();

 });

 function countTxt(){  //计数函数

  if(sw == false){  //只有开关关闭时,才赋值

   txtNum.textContent = txt.value.length;

  }

 }

登入後複製

在vue中的寫法:

template:

1

2

<textarea name="suggestions-text" id="textarea" cols="30" rows="10" maxlength="300" v-on:keyup="write()" v-on:compositionstart="importStart()" v-on:compositionend="importEnd()" v-model="textContent"></textarea>

<p class="counterNum">{{conterNum}}/300</p>

登入後複製

data:

1

2

3

textContent: '',

conterNum: 0,

chnIpt: false,

登入後複製

methods:

1

2

3

4

5

6

7

8

9

10

11

12

13

write() {

 let self = this;

 if (self.chnIpt == false) {

  self.conterNum = self.textContent.length;

 }

},

importStart() {

 this.chnIpt = true;

},

importEnd() {

 this.chnIpt = false;

 this.write();

}

登入後複製

相關推薦:

html5中文字方塊輸入移除內容提示

禁止input文字方塊輸入實作屬性

js各種驗證文字方塊輸入格式(正規表示式)_表單特效

#

以上是即時監控文字方塊輸入字數詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板