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

詳解maxlength屬性在textarea里奇怪的表現(xiàn)

 更新時間:2015年12月27日 10:50:11   作者:zjzhome  
這篇文章主要介紹了maxlength屬性在textarea里奇怪的表現(xiàn)的相關資料,需要的朋友可以參考下

HTML5給表單帶來了很多改變,比如今天要說的maxlength,這個屬性可以限制輸入框輸入的最大字字符數(shù),更方便的是對于粘貼的內(nèi)容也能夠根據(jù)字符數(shù)自動截斷。

最近就接到這要一個需求,限制用戶最多輸入600字(漢字和字母不區(qū)分),對于粘貼的內(nèi)容也要能自動截斷,輸入600字后就無法輸入。

第一時間想到了maxlength,基本滿足需求,但還是有一些怪異的表現(xiàn)。

看下面的代碼:

<textarea name="text" id="text" maxlength="600"></textarea>
<p><span id="already"></span>/<span>600</span></p>
text.oninput = function() {
  already.textContent = text.value.length;
}

上述代碼中限制輸入字符數(shù)為600,并通過oninput監(jiān)聽用戶的輸入,沒有用keydown,因為keydown只能監(jiān)聽用戶鍵盤輸入,對于粘貼沒有反應。。。oninput可以做到。

這時候直接輸入600字后就不再可以輸入,刪除一些,再輸入一些,表現(xiàn)正常。奇怪的是如果你粘貼進textarea里一大堆文字,以為maxlength的存在自動截斷,此時textarea里正好有600個字符,這時候你刪除一些字符,然后再嘗試輸入,你會發(fā)現(xiàn):

臥槽,無法輸入了?。?!再刪的多一些,這時可以繼續(xù)輸入,但是?。。≡谳斎脒€不到600字符的時候,突然又不能輸入了?。。?/p>

chrome下以及我的android機器下都會這樣。。暫時不知道原因。測試了下input,不會有這樣的情況出現(xiàn),而且maxlength屬性的值小一點的話就不會有這種情況,比如10。。。

這樣的話maxlength就不靠譜了,就自己多寫點代碼吧,既然oninput這么靈活,就用它了。

修改下代碼,去掉textarea的maxlength屬性,使用input監(jiān)聽textarea的value值,超過600就自動截斷,造成一種無法輸入的錯覺。

text.oninput = function() {
  if(text.value.length >= 600) {
    text.value = text.value.substr(0,600);
  }
  already.textContent = text.value.length;
}

不放心的話,可以繼續(xù)監(jiān)聽keydown事件,在輸入大于600字符后阻止默認事件,但是有幾個鍵是不能禁止的:刪除退格和回車:

text.onkeydown = function() {
  if(text.value.length >= 600) {
    // 刪除:46 退格:8 回車:13
    if (!(e.which == '46' || e.which == '8' || e.which == '13')) {
      e.preventDefault();
    }
   }
}

IE8以下不支持maxlength屬性,也不支持oninput,但是他們有一個更強大的方法:onpropertychange。

下面通過一端代碼講解textarea實現(xiàn)maxlength屬性

<script language="javascript" type="text/javascript"> 
function textlen(x,y){ 
 var thelength = x.value.length; 
 window.status=thelength+' of '+y+' maximum characters.'; 
} 
function maxtext(x,y){ 
 tempstr = x.value 
 if(tempstr.length>y){ 
  x.value = tempstr.substring(0,y); 
 } 
 textlen(x,y); 
} 
</script> 
<form name="myform"> 
   <textarea name="mytextarea"  
              cols="45"  
              rows="3"  
              wrap="virtual"  
              onkeypress="return(this.value.length<20)" 
              onkeydown="textlen(this,20)"  
              onkeyup="textlen(this,20)"  
              onblur="maxtext(this,20)">
   </textarea> 
</form> 

相關文章

  • JavaScript 10件讓人費解的事情

    JavaScript 10件讓人費解的事情

    JavaScript 可算是世界上最流行的編程語言,它曾被 Web 開發(fā)設計師貼上噩夢的標簽,雖然真正的噩夢其實是 DOM API,這個被大量的開發(fā)與設計師隨手拈來增強他們的 Web 前端的腳本語言,如今越來越被重視,雖則如此,JavaScript 仍然擁有很多讓人費解的東西。
    2010-02-02
  • layui form表單提交后實現(xiàn)自動刷新

    layui form表單提交后實現(xiàn)自動刷新

    今天小編就為大家分享一篇layui form表單提交后實現(xiàn)自動刷新,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 正則表達式刪除JavaScript代碼中的空格、注釋和換行符

    正則表達式刪除JavaScript代碼中的空格、注釋和換行符

    這篇文章主要介紹了正則表達式刪除JavaScript代碼中的空格、注釋和換行符,需要的朋友可以參考下
    2023-12-12
  • js prototype和__proto__的關系是什么

    js prototype和__proto__的關系是什么

    這篇文章主要介紹了js prototype和__proto__的關系是什么,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • JS獲取瀏覽器版本及名稱實現(xiàn)函數(shù)

    JS獲取瀏覽器版本及名稱實現(xiàn)函數(shù)

    獲取瀏覽器名稱及版本信息,如果當前瀏覽器是IE,彈出瀏覽器版本,否則彈出當前瀏覽器名稱和版本,詳細實現(xiàn)代碼請參考本文
    2013-04-04
  • Bootstrap項目實戰(zhàn)之子欄目資訊內(nèi)容

    Bootstrap項目實戰(zhàn)之子欄目資訊內(nèi)容

    Bootstrap項目實戰(zhàn)之資訊內(nèi)容,本文主要學習制作一下子欄目資訊內(nèi)容,感興趣的小伙伴們可以參考一下
    2016-04-04
  • 基于canvas的二維碼邀請函生成插件

    基于canvas的二維碼邀請函生成插件

    本文主要介紹了基于canvas的二維碼邀請函生成插件。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • JavaScript 隨機驗證碼的生成實例代碼

    JavaScript 隨機驗證碼的生成實例代碼

    這篇文章主要介紹了JavaScript 隨機驗證碼的生成實例代碼的相關資料,需要的朋友可以參考下
    2016-09-09
  • JavaScript實現(xiàn)圖片放大預覽效果

    JavaScript實現(xiàn)圖片放大預覽效果

    這篇文章主要介紹了JavaScript實現(xiàn)圖片放大預覽效果,幫助大家更好的理解和制作JavaScript特效,感興趣的朋友可以了解下
    2020-11-11
  • webpack打包主要流程以及優(yōu)化

    webpack打包主要流程以及優(yōu)化

    這篇文章主要介紹了Webpack是一個強大的前端構建工具,通過配置文件和一系列的插件和加載器,它可以將項目中的模塊打包成適合生產(chǎn)環(huán)境的文件,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-01-01

最新評論

平顺县| 中宁县| 乌兰察布市| 得荣县| 镇雄县| 永宁县| 东港市| 开化县| 望江县| 临沭县| 丰都县| 梓潼县| 尼勒克县| 漳平市| 巫山县| 玛多县| 游戏| 彩票| 息烽县| 罗山县| 阿尔山市| 桃江县| 桦南县| 宁化县| 靖远县| 峡江县| 岳西县| 洞头县| 韶山市| 永平县| 乌兰县| 农安县| 博罗县| 章丘市| 江油市| 方山县| 铜山县| 镇赉县| 来凤县| 谷城县| 南木林县|