最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js實(shí)現(xiàn)textarea限制輸入字?jǐn)?shù)

 更新時(shí)間:2017年02月13日 14:53:12   作者:chang紅達(dá)  
本文主要介紹了js實(shí)現(xiàn)textarea限制輸入字?jǐn)?shù)的原理與方法。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧

實(shí)現(xiàn)textarea限制輸入字?jǐn)?shù)(包含中文只能輸入10個(gè),全ASCII碼能夠輸入20個(gè))

textarea稱文本域,又稱文本區(qū),即有滾動(dòng)條的多行文本輸入控件,在網(wǎng)頁(yè)的提交表單中經(jīng)常用到。與單行文本框text控件不同,它不能通過(guò)maxlength屬性來(lái)限制字?jǐn)?shù),為此必須尋求其他方法來(lái)加以限制以達(dá)到預(yù)設(shè)的需求。

通常的做法就是使用#腳本語(yǔ)言來(lái)實(shí)現(xiàn)對(duì)textarea文本域的字?jǐn)?shù)輸入限制,簡(jiǎn)單而實(shí)用。假設(shè)我們有一個(gè)id為 txta1 的textarea文本區(qū),我們可以通過(guò)以下代碼限制它的鍵盤輸入字?jǐn)?shù)為10個(gè)字(漢字或其他小角字符):

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

它的原理是通過(guò)對(duì)keydown(鍵盤鍵位按下)事件對(duì)指定id號(hào)的文本區(qū)進(jìn)行監(jiān)測(cè),可以想象,它只能限制鍵盤輸入,如果用戶通過(guò)鼠標(biāo)右鍵粘貼剪切板中的文本,它無(wú)法控制字?jǐn)?shù)。

通過(guò)鍵盤輸入,以上文本區(qū)只能輸入10個(gè)字。但是,我們的目的并沒(méi)有達(dá)到!請(qǐng)隨便復(fù)制一些文本,試著用鼠標(biāo)右鍵粘貼,看看發(fā)生了什么。

你可以在網(wǎng)上找到類似上述的其他JS腳本,它們不管多么優(yōu)秀,其原理都是一樣的,通過(guò)對(duì)keydown、keyup或keypress之類的鍵盤鍵位操作事件來(lái)監(jiān)控文本區(qū)的輸入,無(wú)法防止鼠標(biāo)右鍵的粘貼,為此,如果一定要真正地限制textarea的字?jǐn)?shù),我們還得為網(wǎng)頁(yè)加另一把鎖——禁用鼠標(biāo)右鍵,這無(wú)疑得付出額外的開(kāi)銷,同時(shí)也可能是網(wǎng)頁(yè)制作者不一定愿意做的。其實(shí),還有一個(gè)更簡(jiǎn)單的方法,使用onpropertychange屬性。

onpropertychange可以用來(lái)判斷預(yù)定元素的value值,當(dāng)元素的value值發(fā)生變化時(shí)判斷事件就會(huì)被觸發(fā),僅關(guān)心被監(jiān)測(cè)元素的value值,避開(kāi)了輸入的來(lái)源,從而可以比較理想地達(dá)成我們的限制字?jǐn)?shù)這一目的。它屬于JS范疇,可以在表單方框區(qū)代表中嵌套使用,以下是代碼和效果樣式,可以像上面那樣測(cè)試輸入,你會(huì)發(fā)現(xiàn)它真正達(dá)到目的:不管用什么方式輸入,它只能輸入100個(gè)字(漢字或其他小解符號(hào)):

代碼:

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

當(dāng)然,為了更為保險(xiǎn),處理表單數(shù)據(jù)的后臺(tái)腳本程序還應(yīng)該對(duì)提交來(lái)的數(shù)據(jù)進(jìn)行再一次的檢測(cè),如果字?jǐn)?shù)超出預(yù)設(shè)的數(shù)量則進(jìn)行相應(yīng)處理,這樣才達(dá)到真正限制字?jǐn)?shù)的目的。(完)

另外一種方法實(shí)現(xiàn)textarea限制輸入字?jǐn)?shù)(包含中文只能輸入10個(gè),全ASCII碼能夠輸入20個(gè))

<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>

還有一種方式:

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; 
} 
} 
<textarea name=words cols=19 rows=5 class=input1 onPropertyChange= "textCounter(upbook.words, 50) "> textarea> 

剩余字?jǐn)?shù):

<input name=remLen type=text id= "remLen " style= "background-color: #D4D0C8; border: 0; color: red " value=50 size=3 maxlength=3 readonly>
function LimitTextArea(field){ 
 maxlimit=200; 
 if (field.value.length > maxlimit) 
  field.value = field.value.substring(0, maxlimit); 
  
 }
<textarea cols=50 rows=10 name="comment" id="commentarea" onKeyDown="LimitTextArea(this)" onKeyUp="LimitTextArea(this)" onkeypress="LimitTextArea(this)" ></textarea>

title="The textarea width must less than 300 characters." 放在textarea 里面提示輸入最大字節(jié)數(shù)。

例如:

<textarea title="The textarea width must less than 300 characters." cols=50 rows=10 name="comment" id="commentarea" onKeyDown="LimitTextArea(this)" onKeyUp="LimitTextArea(this)" onkeypress="LimitTextArea(this)" ></textarea>

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • JS獲取當(dāng)前網(wǎng)址、主機(jī)地址項(xiàng)目根路徑

    JS獲取當(dāng)前網(wǎng)址、主機(jī)地址項(xiàng)目根路徑

    本文為大家提供JS如何獲取當(dāng)前網(wǎng)址、主機(jī)地址之后的目錄及項(xiàng)目根路徑的方法,喜歡的朋友可以收藏下
    2013-11-11
  • 基于JavaScript實(shí)現(xiàn)移動(dòng)端TAB觸屏切換效果

    基于JavaScript實(shí)現(xiàn)移動(dòng)端TAB觸屏切換效果

    我們使用移動(dòng)端時(shí)可以通過(guò)觸屏手勢(shì)左右滑動(dòng)來(lái)切換TAB欄目,如網(wǎng)易新聞等APP欄目切換。我們說(shuō)的TAB一般由導(dǎo)航條和TAB對(duì)應(yīng)的內(nèi)容組成,切換導(dǎo)航條上的標(biāo)簽同時(shí)標(biāo)簽對(duì)應(yīng)的內(nèi)容也會(huì)跟著切換。本文將結(jié)合實(shí)例給大家介紹一個(gè)移動(dòng)端TAB觸屏切換效果。
    2015-10-10
  • JS實(shí)現(xiàn)黑色大氣的二級(jí)導(dǎo)航菜單效果

    JS實(shí)現(xiàn)黑色大氣的二級(jí)導(dǎo)航菜單效果

    這篇文章主要介紹了JS實(shí)現(xiàn)黑色大氣的二級(jí)導(dǎo)航菜單效果,具有延遲響應(yīng)鼠標(biāo)事件顯示切換效果的功能,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-09-09
  • JavaScript操作Cookie方法實(shí)例分析

    JavaScript操作Cookie方法實(shí)例分析

    這篇文章主要介紹了JavaScript操作Cookie方法,實(shí)例分析了javascript針對(duì)cookie操作的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • JavaScript接口實(shí)現(xiàn)方法實(shí)例分析

    JavaScript接口實(shí)現(xiàn)方法實(shí)例分析

    這篇文章主要介紹了JavaScript接口實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了JavaScript接口實(shí)現(xiàn)原理、操作步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • JS簡(jiǎn)單實(shí)現(xiàn)點(diǎn)擊復(fù)制鏈接的方法

    JS簡(jiǎn)單實(shí)現(xiàn)點(diǎn)擊復(fù)制鏈接的方法

    這篇文章主要介紹了JS簡(jiǎn)單實(shí)現(xiàn)點(diǎn)擊復(fù)制鏈接的方法,提供了2種簡(jiǎn)單的復(fù)制鏈接操作方法供大家選擇使用,需要的朋友可以參考下
    2016-08-08
  • Webpack處理樣式資源的配置詳情

    Webpack處理樣式資源的配置詳情

    Webpack 本身是不能識(shí)別樣式資源的,所以我們需要借助 Loader 來(lái)幫助 Webpack 解析樣式資源,本文就來(lái)介紹一下Webpack處理樣式資源的配置詳情,感興趣的可以了解一下
    2023-12-12
  • 簡(jiǎn)單了解JavaScript彈窗實(shí)現(xiàn)代碼

    簡(jiǎn)單了解JavaScript彈窗實(shí)現(xiàn)代碼

    這篇文章主要介紹了簡(jiǎn)單了解JavaScript彈窗實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • js實(shí)現(xiàn)注冊(cè)頁(yè)面校驗(yàn)功能

    js實(shí)現(xiàn)注冊(cè)頁(yè)面校驗(yàn)功能

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)注冊(cè)頁(yè)面校驗(yàn)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 實(shí)例詳解ECMAScript5中新增的Array方法

    實(shí)例詳解ECMAScript5中新增的Array方法

    這篇文章主要介紹了實(shí)例詳解ECMAScript5中新增的Array方法的相關(guān)資料,需要的朋友可以參考下
    2016-04-04

最新評(píng)論

合山市| 昌平区| 衢州市| 长汀县| 绵阳市| 科技| 大庆市| 临海市| 桃江县| 沾益县| 通州区| 西昌市| 汝州市| 鸡东县| 海原县| 西盟| 孝昌县| 江西省| 锡林郭勒盟| 阿合奇县| 临安市| 宕昌县| 云安县| 扎囊县| 华安县| 海南省| 肇庆市| 错那县| 康保县| 长岭县| 鄱阳县| 南阳市| 宜宾市| 曲松县| 曲阳县| 海宁市| 潜山县| 双城市| 乌兰浩特市| 彰化县| 湄潭县|