说明:

w-count固定为数字部分的class 

textarea-active为超出最大输入文字个数报错信息的class

html 部分:

<div class="wrap wrapper">

      <div class="tp-form-textarea tp-form-input-unname">
<div class="textarea-box" data-textarea="textarea" data-length="20">
<textarea name="" id="" cols="5" rows="10" placeholder="默认文字" data-cols="5"></textarea>
<p class="w-count" data-length="number"><em>0</em>/30</p>
</div>
</div> <div class="tp-form-textarea tp-form-input-unname">
<div class="textarea-box" data-textarea="textarea-1" data-length="20">
<textarea name="" id="" cols="3" rows="10" placeholder="默认文字" data-cols="3"></textarea>
<p class="w-count" data-length="number-1"><em>0</em>/302</p>
</div>
</div>
</div>

js部分:

/*

 * @name        tab.js tab切换功能
*/
define(function(require, exports, module) {
var TextArea = function(ele,config){
this.area = $.extend({
triggerFocus:'focus',
triggerBlur:'blur',
triggerInput:'input',
$content: '.textarea-box',
$textareaBox:"[data-textarea*='textarea']",
$wCount:"[data-length *='number']",
$value : '',
$maxlength:100
}, config);
this.init(ele);
};
TextArea.prototype = {
constructor:TextArea,
init: function(ele){
var self = this;
self.$ele = ele;
//this就是代表当前作用域对象的引用。如果在全局范围this 就代表window 对象,如果在构造函数体内,就代表当前的构造函数所声明的对象。
self.$textareaBox = $(self.area.$content || self.area.$textareaBox);
self.renderTab();
},
cssStatus:{
actives: 'textarea-active', //给聚焦的盒子添加class
warnimg: 'count-error' //给报错的盒子添加红色文字
}, renderTab:function(){
var self = this;
self.$textareaBox.find("textarea").on(self.area.triggerFocus, function(){
var that = $(this);
_parent = that.parents(".textarea-box");
_parent.addClass(self.cssStatus.actives);
}).on(self.area.triggerBlur, function(){
var _that = $(this);
self.$textareaBox.removeClass(self.cssStatus.actives);
}).on(self.area.triggerInput, function(){ //input事件是时时触发
var _this = $(this),
_parent = _this.parent(),
val = $.trim(_this.val());
wCount = _parent.find((self.area.$wCount || ".w-count")).text(); //获取文字最大数
if(wCount == '' || wCount =="undefined" || wCount == null){
maxlength = self.area.$maxlength;
}else{
var wNum = wCount.lastIndexOf("\/"),
maxlength = wCount.substring(wNum+1,wNum.length);
}
if(val.length > maxlength){
_parent.addClass(self.cssStatus.warnimg)
}else{
_parent.removeClass(self.cssStatus.warnimg)
}
_parent.find('.w-count em').text(val.length)
}); }
}
$.extend($.fn,{
textArea:function(config){
return new TextArea($(this), config || {});
}
});
module.exports = $;
})

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. Eclipse CDT 插件修改自动补全

    eclipse CDT 2019-06代码补全插件 本自动补全文件已在2019-06至2019-09平台上做过测试,均已完美通过功能检测 在原来Eclipse工具补全的基础上新增26个英文字符和&qu ...

  2. 使用dlib自带的面向梯度直方图(HOG)和线性分类器方法来检测人脸

    之前使用opencv里面CascadeClassifier(级联分类器)来识别人脸, 下面使用dlib库来实现人脸识别. dlib是一个开源的库,它包含了很多内容有机器学习,图像处理,数值算法等等. ...

  3. 架构模式中的Active Record和Data Mapper

    架构模式中的Active Record和Data Mapper 概念 在简单应用中,领域模型是一种和数据库结构一致的简单结构,对应每个数据库表都有一个领域类,在这种情况下,有必要让每个对象负责数据库的 ...

  4. 小白学Java:RandomAccessFile

    目录 小白学Java:RandomAccessFile 概述 继承与实现 构造器 模式设置 文件指针 操作数据 读取数据 read(byte b[])与read() 追加数据 插入数据 小白学Java ...

  5. 简单总结关于阿里云CDN的知识

    CDN概念剖析 这里解释一下几个概念,摘自阿里云官方文档. 源站: 源站决定了回源时,请求到哪个IP 回源host:回源host决定回源请求访问到该IP上的哪个站点 例子1:源站是域名 源站为 www ...

  6. SpringBoot2.x整合JDBC及初始化data.sql和schema.sql脚本

    今天在使用SpringBoot2.x版本整合JDBC时遇到了一些问题:由于我之前一直用SpringBoot1.5的版本,所以直接在yml里按照1.5的版本配置了属性,没想到2.x直接不能用了.首先是数 ...

  7. HTTPS详解二:SSL / TLS 工作原理和详细握手过程

    HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 在上篇文章HTTPS详解一中,我已经为大家介绍了 HTTPS 的详细原理和通信流 ...

  8. 实验8:路由器IOS升级2

    IOS 升级 在介绍CISCO路由器IOS升级方法前,有必要对Cisco路由器的存储器的相关知识作以简单介绍.路由器与计算机相似,它也有内存和操作系统.在Cisco路由器中,其操作系统叫做互连网操作系 ...

  9. c++IO对象不可复制

    IO类型的3个独立的头文件: iostream定义读写控制窗口的类型, fstream 定义读写已命名文件的类型,             (包含fstream类) sstream定义读写存储在内存中 ...

  10. 使用卷影拷贝提取ntds.dit

    一.简介 通常情况下,即使拥有管理员权限,也无法读取域控制器中的C:\Windows\NTDS\ntds.dit文件.使用windows本地卷影拷贝服务,就可以获得该文件的副本. 在活动目录中,所有的 ...