关于一种使用js限制输入字数方法的思考

 今天看了好友木木同学的一篇笔记《给textarea增加长度的限制》,复制下来学习了一下,个人感觉第一种方法有些不方便之处,发表一下自己的观点,希望和木木同学分享。

第一种方法的代码为:

  1. <textarea name="A" cols="45" rows="2" onKeyDown='if (this.value.length>=20){event.returnValue=false}'>aaaa</textarea>

在使用时发现当输入的字符数超过20时,就不能再在textarea中输入字符,起到了限制长度增加的效果,但是当输入者想要删除textarea中的字符时,按回退键是不起作用的,因为现在字符数已经超过了20个,所以所有的按键都是不起作用的,需要刷新页面才可以重新输入。

为了不用刷新就可以删除多余的数字,需要再加一句判断的代码(为了验证方便,将字符限制为10个):

Code:
  1. <textarea name="A" cols="45" rows="2" onKeyDown='if((this.value.length>=10) && (event.keyCode != 8)){event.returnValue=false}'></textarea>  

即:加上一个判断,当按键为回退键(键码为8)时,按键有效,其他按键无效,这样就解决了上面的使用不方便的问题。

实验用的页面为test.html,代码为:

Code:
  1. <html>  
  2.     <head>  
  3.         <title>限制输入字符数</title>  
  4.     </head>  
  5.     <body>  
  6.         <textarea name="A" cols="45" rows="2" onKeyDown='if((this.value.length>=10) && (event.keyCode != 8)) {event.returnValue=false}'></textarea>   
  7.     </body>  
  8. </html>  

以上纯属个人观点,如果不妥之处,请木木同学和大家见谅。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值