今天看了好友木木同学的一篇笔记《给textarea增加长度的限制》,复制下来学习了一下,个人感觉第一种方法有些不方便之处,发表一下自己的观点,希望和木木同学分享。
第一种方法的代码为:
- <textarea name="A" cols="45" rows="2" onKeyDown='if (this.value.length>=20){event.returnValue=false}'>aaaa</textarea>
在使用时发现当输入的字符数超过20时,就不能再在textarea中输入字符,起到了限制长度增加的效果,但是当输入者想要删除textarea中的字符时,按回退键是不起作用的,因为现在字符数已经超过了20个,所以所有的按键都是不起作用的,需要刷新页面才可以重新输入。
为了不用刷新就可以删除多余的数字,需要再加一句判断的代码(为了验证方便,将字符限制为10个):
- <textarea name="A" cols="45" rows="2" onKeyDown='if((this.value.length>=10) && (event.keyCode != 8)){event.returnValue=false}'></textarea>
即:加上一个判断,当按键为回退键(键码为8)时,按键有效,其他按键无效,这样就解决了上面的使用不方便的问题。
实验用的页面为test.html,代码为:
- <html>
- <head>
- <title>限制输入字符数</title>
- </head>
- <body>
- <textarea name="A" cols="45" rows="2" onKeyDown='if((this.value.length>=10) && (event.keyCode != 8)) {event.returnValue=false}'></textarea>
- </body>
- </html>
以上纯属个人观点,如果不妥之处,请木木同学和大家见谅。