文本框輸入數字倒計實例代碼

来源:http://www.cnblogs.com/nulifendou/archive/2016/01/14/5129015.html
-Advertisement-
Play Games

文本框輸入數字倒計實例代碼:一般情況下,文本框中文字的個數並不是無限的,也就是說具有一定的限制,在人性化程度較好的網站一般有輸入文字倒計效果,這樣可以便於瀏覽者組織語言,下麵就簡單介紹一下如何實現此效果。代碼實例如下: 文本框輸入文字倒計實例代碼-螞蟻部落 (50字以內) 以上代碼實現...


文本框輸入數字倒計實例代碼:
一般情況下,文本框中文字的個數並不是無限的,也就是說具有一定的限制,在人性化程度較好的網站一般有輸入文字倒計效果,這樣可以便於瀏覽者組織語言,下麵就簡單介紹一下如何實現此效果。
代碼實例如下:

 

<!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.value屬性可以參閱javascript的textarea.value屬性一章節。 
3.substring()函數可以參閱javascript的String對象的substring()方法一章節。 
4.Math.floor()函數可以參閱javascript的Math.floor()方法一章節。 
5.innerHTML屬性可以參閱js的innerHTML屬性的用法一章節。 
6.charCodeAt()函數可以參閱javascript的String對象的charCodeAt()方法一章節。 

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=9734

更多內容可以參閱:http://www.softwhy.com/javascript/

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • :first 選取第一個元素:$("div:first"):last 選取最後一個元素:$("div:last"):not(selector) 取出除selector之外的其他元素:$("div:not(.class)"):even 選取索引為偶數的元素:$("div:even"):odd 選取索引...
  • JavaScript 語句JavaScript 語句向瀏覽器發出的命令。語句的作用是告訴瀏覽器該做什麼。分號 ;分號用於分隔 JavaScript 語句。通常我們在每條可執行的語句結尾添加分號。使用分號的另一用處是在一行中編寫多條語句。提示:您也可能看到不帶有分號的案例。在 JavaScript 中...
  • 效果圖 如何用css畫三角形? 1).利用css控制border的邊框屬性, 畫出四個小三角形 html代碼 css代碼 效果: 從css很容易看出來, div的邊框 b...
  • css如何將div實現全屏水平垂直居中:本章節介紹一下如何將一個div元素在整個網頁內實現水平垂直居中效果,代碼是最有說服力的,直接看代碼。代碼如下: 螞蟻部落 以上代碼將div在網頁中實現了全屏居中效果,下麵簡單介紹一下它的實現過程。一.實現原理:將div元素設置為絕對定位,然後設...
  • jquery實現的規定文本框只能輸入數字可以包括小數:在實際應用中,文本框中有時候只能夠允許輸入整數,但是有時候可能更為"博愛"一點,可以允許輸入浮點數,下麵就通過實例代碼介紹一下如何利用jquery實現此功能,代碼如下:螞蟻部落以上代碼實現了我們的要求,文本框中只能夠輸入整數或者浮點數,代碼比較簡...
  • js實現的隨機顏色實例代碼:有時候需要對顏色隨機取值,或者類似功能的擴展,具體場景這裡就不介紹了,直接看代碼。代碼實例如下: 螞蟻部落 以上代碼實現了隨機顏色效果,下麵簡單介紹一下此效果的實現過程。一.實現原理:首先創建一個數組,數組中存放的就是顏色值,然後通過Math.random...
  • 如何讓沒有空格連續字母換行:在預設狀態下,連續的字母是無法換行的,會衝出元素的邊界,下麵介紹一下如何讓這樣的字元串實現換行。代碼如下: 螞蟻部落 AAAAAAAAAAAAAAAAAAAAAAAAAA 上面的代碼實現了我們的要求,可以讓連續的字母換行。...
  • 規定文本框只能夠輸入整數代碼實例:有時候可能需要規定文本框內容只能夠輸入整數,下麵給出一段能夠實現此功能的代碼實例,供需要的朋友參考。代碼如下:螞蟻部落以上代碼實現了預期的要求,文本框中只能夠輸入整數,下麵介紹一下它的實現過程。一.代碼註釋:1.$(function(){}),當文檔結構完全載入完畢...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...