国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

js實現textarea限制輸入字數

2024-05-06 15:11:40
字體:
來源:轉載
供稿:網友

實現textarea限制輸入字數(包含中文只能輸入10個,全ASCII碼能夠輸入20個)

textarea稱文本域,又稱文本區,即有滾動條的多行文本輸入控件,在網頁的提交表單中經常用到。與單行文本框text控件不同,它不能通過maxlength屬性來限制字數,為此必須尋求其他方法來加以限制以達到預設的需求。

通常的做法就是使用#腳本語言來實現對textarea文本域的字數輸入限制,簡單而實用。假設我們有一個id為 txta1 的textarea文本區,我們可以通過以下代碼限制它的鍵盤輸入字數為10個字(漢字或其他小角字符):

<script language="#" type="text/ecmascript"> window.onload = function() { document.getElementById('txta1').onkeydown = function() {  if(this.value.length >= 10)   event.returnValue = false; } } </script> 

它的原理是通過對keydown(鍵盤鍵位按下)事件對指定id號的文本區進行監測,可以想象,它只能限制鍵盤輸入,如果用戶通過鼠標右鍵粘貼剪切板中的文本,它無法控制字數。

通過鍵盤輸入,以上文本區只能輸入10個字。但是,我們的目的并沒有達到!請隨便復制一些文本,試著用鼠標右鍵粘貼,看看發生了什么。

你可以在網上找到類似上述的其他JS腳本,它們不管多么優秀,其原理都是一樣的,通過對keydown、keyup或keypress之類的鍵盤鍵位操作事件來監控文本區的輸入,無法防止鼠標右鍵的粘貼,為此,如果一定要真正地限制textarea的字數,我們還得為網頁加另一把鎖——禁用鼠標右鍵,這無疑得付出額外的開銷,同時也可能是網頁制作者不一定愿意做的。其實,還有一個更簡單的方法,使用onpropertychange屬性。

onpropertychange可以用來判斷預定元素的value值,當元素的value值發生變化時判斷事件就會被觸發,僅關心被監測元素的value值,避開了輸入的來源,從而可以比較理想地達成我們的限制字數這一目的。它屬于JS范疇,可以在表單方框區代表中嵌套使用,以下是代碼和效果樣式,可以像上面那樣測試輸入,你會發現它真正達到目的:不管用什么方式輸入,它只能輸入100個字(漢字或其他小解符號):

代碼:

<textarea onpropertychange="if(value.length>100) value=value.substr(0,100)" class="smallArea" cols="60" name="txta" rows="8"></textarea>

當然,為了更為保險,處理表單數據的后臺腳本程序還應該對提交來的數據進行再一次的檢測,如果字數超出預設的數量則進行相應處理,這樣才達到真正限制字數的目的。(完)

另外一種方法實現textarea限制輸入字數(包含中文只能輸入10個,全ASCII碼能夠輸入20個)

<script> function check() { var regC = /[^ -~]+/g; var regE = //D+/g; var str = t1.value; if (regC.test(str)){  t1.value = t1.value.substr(0,10); } if(regE.test(str)){  t1.value = t1.value.substr(0,20); } } </script> <textarea maxlength="10" id="t1" onkeyup="check();"> </textarea>            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 石屏县| 贵德县| 栖霞市| 桂林市| 汪清县| 于田县| 荣昌县| 古浪县| 萝北县| 太仓市| 临颍县| 绥阳县| 鄂温| 华容县| 津市市| 博客| 吉林省| 本溪市| 韶关市| 尉犁县| 深州市| 泌阳县| 娱乐| 南通市| 平潭县| 略阳县| 伽师县| 长寿区| 嘉峪关市| 建湖县| 屯留县| 河北省| 临夏市| 海丰县| 柘城县| 轮台县| 留坝县| 邓州市| 古田县| 大渡口区| 内江市|