這篇文章主要介紹js怎么實現(xiàn)textarea限制輸入字數(shù),文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)自2013年起,先為沈陽等服務建站,沈陽等地企業(yè),進行企業(yè)商務咨詢服務。為沈陽企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
實現(xiàn)textarea限制輸入字數(shù)(包含中文只能輸入10個,全ASCII碼能夠輸入20個)
textarea稱文本域,又稱文本區(qū),即有滾動條的多行文本輸入控件,在網(wǎng)頁的提交表單中經(jīng)常用到。與單行文本框text控件不同,它不能通過maxlength屬性來限制字數(shù),為此必須尋求其他方法來加以限制以達到預設的需求。
通常的做法就是使用#腳本語言來實現(xiàn)對textarea文本域的字數(shù)輸入限制,簡單而實用。假設我們有一個id為 txta1 的textarea文本區(qū),我們可以通過以下代碼限制它的鍵盤輸入字數(shù)為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號的文本區(qū)進行監(jiān)測,可以想象,它只能限制鍵盤輸入,如果用戶通過鼠標右鍵粘貼剪切板中的文本,它無法控制字數(shù)。
通過鍵盤輸入,以上文本區(qū)只能輸入10個字。但是,我們的目的并沒有達到!請隨便復制一些文本,試著用鼠標右鍵粘貼,看看發(fā)生了什么。
你可以在網(wǎng)上找到類似上述的其他JS腳本,它們不管多么優(yōu)秀,其原理都是一樣的,通過對keydown、keyup或keypress之類的鍵盤鍵位操作事件來監(jiān)控文本區(qū)的輸入,無法防止鼠標右鍵的粘貼,為此,如果一定要真正地限制textarea的字數(shù),我們還得為網(wǎng)頁加另一把鎖——禁用鼠標右鍵,這無疑得付出額外的開銷,同時也可能是網(wǎng)頁制作者不一定愿意做的。其實,還有一個更簡單的方法,使用onpropertychange屬性。
onpropertychange可以用來判斷預定元素的value值,當元素的value值發(fā)生變化時判斷事件就會被觸發(fā),僅關心被監(jiān)測元素的value值,避開了輸入的來源,從而可以比較理想地達成我們的限制字數(shù)這一目的。它屬于JS范疇,可以在表單方框區(qū)代表中嵌套使用,以下是代碼和效果樣式,可以像上面那樣測試輸入,你會發(fā)現(xiàn)它真正達到目的:不管用什么方式輸入,它只能輸入100個字(漢字或其他小解符號):
代碼:
當然,為了更為保險,處理表單數(shù)據(jù)的后臺腳本程序還應該對提交來的數(shù)據(jù)進行再一次的檢測,如果字數(shù)超出預設的數(shù)量則進行相應處理,這樣才達到真正限制字數(shù)的目的。(完)
另外一種方法實現(xiàn)textarea限制輸入字數(shù)(包含中文只能輸入10個,全ASCII碼能夠輸入20個)
還有一種方式:
function textCounter(field, maxlimit) { if (field.value.length > maxlimit){ field.value = field.value.substring(0, maxlimit); }else{ document.upbook.remLen.value = maxlimit - field.value.length; } }
剩余字數(shù):
function LimitTextArea(field){ maxlimit=200; if (field.value.length > maxlimit) field.value = field.value.substring(0, maxlimit); }
title="The textarea width must less than 300 characters." 放在textarea 里面提示輸入最大字節(jié)數(shù)。
例如:
以上是“js怎么實現(xiàn)textarea限制輸入字數(shù)”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!