电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 2172 人浏览分享

js限制textarea每行输入字符串长度

[复制链接]
2172 0
ext通常我们可以直接用maxlength属性来控制输入的字符会长度
但是textarea没有这个属性。

asp.net的服务端textbox这个属性也不起效,所以我们只有用js脚本来控制
好,废话不多说,先上代码
  1. function textCounter(field, maxlimit, lines) {//参数说明:field是textarea对象,maxlimit是最大允许长度,lines是行数
  2. var arr = field.value.split("\n");//首先我们要为验证行数,通过分行符“\n”
  3. var perLine = "";
  4. var value = "";
  5. if (arr.length < lines) lines = arr.length;//判断行数是否超出了我们规定的行数,如果超了就把行数改为超出的,因为我们要算字符串长度
  6. for (loop = 0; loop < lines; loop++) {//循环测数字符串总长度,不多说了
  7. perLine = arr[loop];
  8. if (perLine.length > maxlimit)
  9. perLine = perLine.substring(0, maxlimit);
  10. value = value + perLine;
  11. if (loop != lines - 1)
  12. value = value + "\n";
  13. }
  14. if (field.value != value)
  15. field.value = value;
  16. if (checkstr(value, maxlimit)) {//判断字符串长度是不是超标
  17. field.value = value.substring(0, maxlimit);//删除超除的多余字符串
  18. }
  19. }

  20. function showOverWords(obj, maxlength) {//显示剩余的可输入字符数obj为txteara对象,maxlength最大长度
  21. len = obj.value.length;
  22. $("#wordCount").html(maxlength - len); //这句是jquery的,可以自己相对自己改改。 表示修改id为wordCount标签的值
  23. }

  24. function checkstr(str, digit) {//判断中文和英文,字符串的长度是否超标
  25. var n = 0;
  26. for (i = 0; i < str.length; i++) {
  27. var leg = str.charCodeAt(i);//ASCII码
  28. if (leg > 255) {//大于255的都是中文
  29. n += 2;//如果是中文就是2个字节
  30. } else {
  31. n += 1;//英文,不多说了
  32. }
  33. }
  34. if (n > digit) {
  35. return true;
  36. } else {
  37. return false;
  38. }
  39. }
复制代码

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

23

粉丝

2901

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.