input 和 textarea 输入框最大文字限制的jquery插件


Posted in Javascript onOctober 27, 2011
/* input 和 textarea 最大文字限定插件 
* 修改版, 一个中文表示1一个字, 一个英文半个字; 
* TextLimit - jQuery plugin for counting and limiting characters for input and textarea fields 
* 
* pass '-1' as speed if you don't want the char-deletion effect. (don't just put 0) 
* Example: jQuery("Textarea").textlimit('span.counter',256) 
* 
* $Version: 2009.07.25 +r2 
* Copyright (c) 2009 Yair Even-Or 
* vsync.design@gmail.com 
*/ String.prototype.getBytes = function () { 
var cArr = this.match(/[^\x00-\xff]/ig); 
return this.length + (cArr == null ? 0 : cArr.length); 
}; 
(function(jQuery) { 
jQuery.fn.textlimit=function(counter_el, thelimit, speed) { 
var charDelSpeed = speed || 15; 
var toggleCharDel = speed != -1; 
var toggleTrim = true; 
var that = this[0]; 
var isCtrl = false; 
updateCounter(); 
function updateCounter(){ 
if(typeof that == "object") 
jQuery(counter_el).text(thelimit - Math.ceil(that.value.getBytes()/2)); 
}; 
this.keydown (function(e){ 
if(e.which == 17) isCtrl = true; 
var ctrl_a = (e.which == 65 && isCtrl == true) ? true : false; // detect and allow CTRL + A selects all. 
var ctrl_v = (e.which == 86 && isCtrl == true) ? true : false; // detect and allow CTRL + V paste. 
// 8 is 'backspace' and 46 is 'delete' 
if( this.value.length >= thelimit && e.which != '8' && e.which != '46' && ctrl_a == false && ctrl_v == false) 
e.preventDefault(); 
}) 
.keyup (function(e){ 
updateCounter(); 
if(e.which == 17) 
isCtrl=false; 
if( this.value.length >= thelimit && toggleTrim ){ 
if(toggleCharDel){ 
// first, trim the text a bit so the char trimming won't take forever 
// Also check if there are more than 10 extra chars, then trim. just in case. 
if ( (this.value.length - thelimit) > 10 ) 
that.value = that.value.substr(0,thelimit+100); 
var init = setInterval 
( 
function(){ 
if( that.value.length <= thelimit ){ 
init = clearInterval(init); updateCounter() 
} 
else{ 
// deleting extra chars (one by one) 
that.value = that.value.substring(0,that.value.length-1); jQuery(counter_el).text(Math.ceil(that.value.getBytes()/2)); 
} 
} ,charDelSpeed 
); 
} 
else this.value = that.value.substr(0,thelimit); 
} 
}); 
}; 
})(jQuery);
Javascript 相关文章推荐
再谈javascript面向对象编程
Mar 18 Javascript
js判断FCKeditor内容是否为空的两种形式
May 14 Javascript
使用typeof方法判断undefined类型
Sep 09 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
Nov 08 Javascript
javascript bom是什么及bom和dom的区别
Nov 26 Javascript
最简单的JavaScript图片轮播代码(两种方法)
Dec 18 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
May 30 Javascript
Javascript动画效果(2)
Oct 11 Javascript
vue.js入门(3)——详解组件通信
Dec 02 Javascript
vue数据双向绑定原理解析(get &amp; set)
Mar 08 Javascript
Vue2 模板template的四种写法总结
Feb 23 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
Oct 17 Javascript
VBS通过WMI监视注册表变动的代码
Oct 27 #Javascript
JavaScript Memoization 让函数也有记忆功能
Oct 27 #Javascript
JavaScript 类型的包装对象(Typed Wrappers)
Oct 27 #Javascript
40款非常棒的jQuery 插件和制作教程(系列一)
Oct 26 #Javascript
JavaScript学习笔记(二) js对象
Oct 25 #Javascript
JavaScript学习笔记(一) js基本语法
Oct 25 #Javascript
jQuery数据显示插件整合实现代码
Oct 24 #Javascript
You might like
PHP 获取文件权限函数介绍
2013/07/11 PHP
thinkphp普通查询与表达式查询实例分析
2014/11/24 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
2019/10/24 PHP
php数值计算num类简单操作示例
2020/05/15 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
Javascript 日期处理之时区问题
2009/10/08 Javascript
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
js获取html页面节点方法(递归方式)
2013/12/13 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
JS实现网页右侧带动画效果的伸缩窗口代码
2015/10/29 Javascript
jQuery代码性能优化的10种方法
2016/06/21 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
angularjs请求数据的方法示例
2019/08/06 Javascript
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
Python创建字典的八种方式
2019/02/27 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
秘书行业自我鉴定范文
2013/12/30 职场文书
迎接领导欢迎词
2014/01/11 职场文书
求职毕业生自荐书
2014/02/08 职场文书
财务内勤岗位职责
2014/04/17 职场文书
体育专业自荐书
2014/05/29 职场文书
大学生党性分析材料
2014/12/19 职场文书
党员进社区活动总结
2015/05/07 职场文书
2016年小学生清明节广播稿
2015/12/17 职场文书