文字框輸入數字倒計例項程式碼
一般情況下,文字框中文字的個數並不是無限的,也就是說具有一定的限制,在人性化程度較好的網站一般有輸入文字倒計效果,這樣可以便於瀏覽者組織語言,下面就簡單介紹一下如何實現此效果。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <title>文字框輸入文字倒計例項程式碼-螞蟻部落</title> <style type="text/css"> #spOwner_Name{color:#808080} </style> <script type="text/javascript"> function textLimitCheckSj(thisArea, maxLength, SpanId) { var str=thisArea.value; if(getChrLen(str, maxLength)>maxLength*2) { thisArea.value = str.substring(0,x-1); } else { var leftStr='(剩餘字數:'+Math.floor((maxLength*2-getChrLen(str, maxLength))/2)+')'; document.getElementById(SpanId).innerHTML=leftStr; } } function getChrLen(str,maxLength) { var realLength=0; var len=str.length; var charCode=-1; x=0; for(;(x<len)&&(realLength<=maxLength*2);x++) { charCode=str.charCodeAt(x); if(charCode>=0&&charCode<=128){ realLength+=1; } else{ realLength+=2; } } return realLength; } window.onload=function(){ var ocontent=document.getElementById("content"); ocontent.onkeyup=function(){textLimitCheckSj(this,50,'spOwner_Name')} } </script> <body> <textarea id="content"></textarea> <span id="spOwner_Name"><em>(50字以內)</em></span> </body> </html>
以上程式碼實現了我們想要的效果,當輸入內容的時候,能夠實時提醒還可以輸入的長度,下面就簡單介紹一下實現過程。
一.實現原理:
此程式碼實現的是計算可以輸入漢字的個數,在unicode編碼中,英文和數字在0-128範圍內,只佔一個位元組,漢字佔兩個位元組。當鍵盤按鍵鬆開時就會觸發onkeyup事件,事件處理函式能夠計算當前輸入字元的長度,並且將剩餘的可以輸入的漢字個數寫入span中,原理大致如此,下面對程式碼進行一下詳細註釋。
二.程式碼註釋:
1.function textLimitCheckSj(thisArea,maxLength,SpanId){},此函式用作onkeyup事件處理函式,第一個引數是textarea文字框物件,第二個是輸入漢字的最大個數,第三個是span元素的id。
2.var str=thisArea.value,將輸入到文字框的內容賦值給變數str。
3.if(getChrLen(str,maxLength)>maxLength*2),判斷輸入的長度是否超出規定,50個是漢字的個數,一個漢字佔兩個位元組。
4.thisArea.value=str.substring(0,x-1),用來擷取字串,在這裡也就是刪除最後一個輸入的字元。
5. var leftStr='(剩餘字數:'+Math.floor((maxLength*2-getChrLen(str, maxLength))/2)+')',計算出剩餘可以輸入的漢字數,並組織成字串。
6.document.getElementById(SpanId).innerHTML=leftStr,將組織好的字元寫入span。
7.function getChrLen(str,maxLength) {},此函式用來返回字串的長度,第二個引數是字串,第二個是最大漢字的個數。
8.var realLength=0,宣告一個變數用於存放字串的長度。
9.var len=str.length,獲取字串中字元的個數。
10.var charCode=-1,此變數用來unicode碼值的,當前初始化為-1。
11.x=0,在for迴圈中使用。
12.for(;(x<len)&&(realLength<=maxLength*2);x++){},遍歷輸入字串的字元,裡面的限定條件非常的重要,如果沒有realLength<=maxLength*2限定條件,那麼文字框將無法正確限定字串的個數。
13.charCode=str.charCodeAt(x),獲取指定索引的字元的unicode碼值。
14.if(charCode>=0&&charCode<=128),判斷是否是佔一個位元組的英文字元或者數字。
15.realLength+=1,長度加1。
16.realLength+=2,如果是漢字長度加2。
17.return realLength,返回長度值。
三.相關閱讀:
1.this可以參閱JavaScript this用法一章節。
2.substring()函式可以參閱javascript substring()一章節。
3.Math.floor()函式可以參閱javascript Math.floor()一章節。
4.innerHTML屬性可以參閱js innerHTML一章節。
5.charCodeAt()函式可以參閱javascript charCodeAt()一章節。
相關文章
- textarea文字框輸入文字數目倒計效果程式碼例項
- 限定文字框只能輸入數字例項程式碼
- 限制文字框只能夠輸入數字程式碼例項
- 如何設定文字框只能夠輸入數字程式碼例項
- 文字框只能輸入數字程式碼
- javascript限制textarea文字框輸入字元個數程式碼例項JavaScript字元
- 規定文字框只能夠輸入整數程式碼例項
- jQuery實現的文字輸入字數倒計效果程式碼jQuery
- 文字框輸入文字倒計詳解
- 兩個文字框同步輸入內容程式碼例項
- 實現文字框輸入內容提示程式碼例項
- 在文字框輸入關鍵字會彈出內容提示程式碼例項
- 實現多個文字框輸入同步效果程式碼例項
- JavaScript 文字框只能輸入數字JavaScript
- 文字框只能輸入數字 javascriptJavaScript
- 文字框內容輸入完畢觸發事件程式碼例項事件
- 文字框輸入內容實現智慧提示效果程式碼例項
- 文字框輸入完成自動跳入下一個程式碼例項
- 密碼框輸入提示效果程式碼例項密碼
- JavaScript倒數計時程式碼例項JavaScript
- 文字框限制輸入字數的JSJS
- 規定文字框只能夠輸入數字包括小數的jQuery程式碼jQuery
- JavaScript輸入字串字數倒計JavaScript字串
- 文字嵌入邊框程式碼例項
- jQuery倒數計時效果程式碼例項jQuery
- JavaScript春節倒數計時程式碼例項JavaScript
- 密碼框提示文字程式碼例項密碼
- 在文字框輸入關鍵詞可以實現篩選功能程式碼例項
- 文字框與文字垂直對齊程式碼例項
- js實現的檢測文字框輸入是否是數字的程式碼JS
- Qt 實現文字輸入框,帶字數限制QT
- javascript實時顯示文字框輸入字數JavaScript
- 點選按鈕實現文字框數字增加或者減少程式碼例項
- 文字框點選清除預設文字例項程式碼
- 讓input文字框文字垂直居中程式碼例項
- 密碼框提示文字效果程式碼例項密碼
- 按鈕倒數計時可用效果例項程式碼
- 商品搶購倒數計時效果程式碼例項