说明:

  1. w-count固定为数字部分的class
  2. textarea-active为超出最大输入文字个数报错信息的class

html 部分:

<div class="wrap wrapper">

  1. <div class="tp-form-textarea tp-form-input-unname">
  2. <div class="textarea-box" data-textarea="textarea" data-length="20">
  3. <textarea name="" id="" cols="5" rows="10" placeholder="默认文字" data-cols="5"></textarea>
  4. <p class="w-count" data-length="number"><em>0</em>/30</p>
  5. </div>
  6. </div>
  7. <div class="tp-form-textarea tp-form-input-unname">
  8. <div class="textarea-box" data-textarea="textarea-1" data-length="20">
  9. <textarea name="" id="" cols="3" rows="10" placeholder="默认文字" data-cols="3"></textarea>
  10. <p class="w-count" data-length="number-1"><em>0</em>/302</p>
  11. </div>
  12. </div>
  13. </div>

js部分:

/*

  1. * @name tab.js tab切换功能
  2. */
  3. define(function(require, exports, module) {
  4. var TextArea = function(ele,config){
  5. this.area = $.extend({
  6. triggerFocus:'focus',
  7. triggerBlur:'blur',
  8. triggerInput:'input',
  9. $content: '.textarea-box',
  10. $textareaBox:"[data-textarea*='textarea']",
  11. $wCount:"[data-length *='number']",
  12. $value : '',
  13. $maxlength:100
  14. }, config);
  15. this.init(ele);
  16. };
  17. TextArea.prototype = {
  18. constructor:TextArea,
  19. init: function(ele){
  20. var self = this;
  21. self.$ele = ele;
  22. //this就是代表当前作用域对象的引用。如果在全局范围this 就代表window 对象,如果在构造函数体内,就代表当前的构造函数所声明的对象。
  23. self.$textareaBox = $(self.area.$content || self.area.$textareaBox);
  24. self.renderTab();
  25. },
  26. cssStatus:{
  27. actives: 'textarea-active', //给聚焦的盒子添加class
  28. warnimg: 'count-error' //给报错的盒子添加红色文字
  29. },
  30. renderTab:function(){
  31. var self = this;
  32. self.$textareaBox.find("textarea").on(self.area.triggerFocus, function(){
  33. var that = $(this);
  34. _parent = that.parents(".textarea-box");
  35. _parent.addClass(self.cssStatus.actives);
  36. }).on(self.area.triggerBlur, function(){
  37. var _that = $(this);
  38. self.$textareaBox.removeClass(self.cssStatus.actives);
  39. }).on(self.area.triggerInput, function(){ //input事件是时时触发
  40. var _this = $(this),
  41. _parent = _this.parent(),
  42. val = $.trim(_this.val());
  43. wCount = _parent.find((self.area.$wCount || ".w-count")).text(); //获取文字最大数
  44. if(wCount == '' || wCount =="undefined" || wCount == null){
  45. maxlength = self.area.$maxlength;
  46. }else{
  47. var wNum = wCount.lastIndexOf("\/"),
  48. maxlength = wCount.substring(wNum+1,wNum.length);
  49. }
  50. if(val.length > maxlength){
  51. _parent.addClass(self.cssStatus.warnimg)
  52. }else{
  53. _parent.removeClass(self.cssStatus.warnimg)
  54. }
  55. _parent.find('.w-count em').text(val.length)
  56. });
  57. }
  58. }
  59. $.extend($.fn,{
  60. textArea:function(config){
  61. return new TextArea($(this), config || {});
  62. }
  63. });
  64. module.exports = $;
  65. })

textarea输入文字限制个数的更多相关文章

  1. jquery统计输入文字的个数并对其进行判断

    <textarea placeholder="该产品满足你的期待吗?说说你的使用心得,分享给 同样看中的他们吧"></textarea> <span ...

  2. js计算textarea输入文字的长度

    前言 日常开发过程中,有些时候我们想使用textarea,然后限制输入的长度,在textarea末尾显示剩余可输入的字节数. 如下图:  解决方法: 常用的有三种方法: 1.通过判断charCodeA ...

  3. js控制textarea输入字符串的个数,鼠标按下抬起推断输入字符数

    [Html代码] <table> <tr> <td width="150">短信内容:</td> <td> <te ...

  4. js对输入文字个数的限制...

    发表留言或者微博的时候,对输入文字个数的限制,下面分两种情况,每种分别介绍两种实现方式: 第一种:一个汉字算一位,两个字母或符号算一位. 通过ASCII编码来判断 textarea.onkeyup = ...

  5. inupt textarea提示文字(点击消失,不输入恢复)

    <input name="textfield" type="text"  maxlength="20" value="请输入 ...

  6. inupt textarea提示文字(点击消失,不输入恢复)及限制字数

    效果: input: textarea: 限100字 源码: input: <input name="textfield" type="text" max ...

  7. js 控制输入文字个数(换行不算)

    如题,换行符在textarea中是要当成一个字符的.用普通的maxlength属性就不行了,于是想到通过事件来控制输入文字的长度. 注意哦,回车换行不能算成字符.这样的话,普通的substring等方 ...

  8. JS控制文本框textarea输入字数限制

    <html> <head> <title>JS限制Textarea文本域字符个数</title> <meta http-equiv="C ...

  9. chrome浏览器下禁制 textarea改变大小; Jquery的textareaCounter插件控制textarea输入的字符数量

    给  textarea 添加一个css 样式即可 resize: none;   用Jquery的插件控制textarea输入的字符数量 一:引用Jquery脚本,并引入 textareaCounte ...

随机推荐

  1. Qt下Eigen矩阵函数库的添加

    第1步: 下载一个Eigen文件包,在官网下即可: http://eigen.tuxfamily.org/index.php?title=Main_Page 第2步: 用Qt随便建一个GUI工程,在. ...

  2. PlayCanvas PBR材质shader代码分析(pixel shader)

    #version es #define varying in out highp vec4 pc_fragColor; #define gl_FragColor pc_fragColor #defin ...

  3. BBOTSTRAP

    Bootstrap 第一步:下载 第二步: 解压缩 第三步:引入(head内部  link引入) Bootstrap 全局样式 移动设备优先:<meta name="viewport& ...

  4. Java支付宝PC网站支付功能开发(详细教程)

    一.前言 本案例使用的是Java实现的.使用支付宝的沙盒环境示例.发布需要换成正式环境.这里就不作详细说明了 本代码适合用来做参考,不要直接复制去使用. 没有账号的需要去平台注册一个: 登录支付宝开发 ...

  5. VUE 开发报表,非编码方式

    官网:http://doc.sougn.com 下载地址:https://pan.baidu.com/share/init?surl=P0O9sjfzC8nuQxirDfjW1A  密码:4oev 先 ...

  6. Lua使用luasocket http请求例子

    local http=require("socket.http"); local request_body = [[login=user&password=123]] lo ...

  7. python修改获取xlsx数据

    刚才要修改一个表格的数据,在网上搜了下方法,做出以下总结: 简单的取出数据以及写入数据 import xlrd data = xlrd.open_workbook(r'C:\Users\亦清\Desk ...

  8. input . type=number.使用后问题点

    所有主浏览器都支持type属性,但是,并非所有主流浏览器都支持所有不同的 input 类型. 以下 input 类型是 HTML5 中的新类型:color.date.datetime.datetime ...

  9. Apache Tomcat文件包含漏洞紧急修复

    Tomcat 漏洞 tomcat有漏洞, 需要升级到9.0.31 https://cert.360.cn/warning/detail?id=849be16c6d2dd909ff56eee7e26ae ...

  10. Python 高级网络操作 - Python Advanced Network Operations

    Python 高级网络操作 - Python Advanced Network Operations Half Open Socket, 一个单向的 socket 被称为 half open sock ...