ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter


Posted in Javascript onFebruary 03, 2012

•可限制最大输入字符长度
•可设置字符截取速度
•可自定义提示信息文本样式(可以改进自定义文本内容)
该插件统计英文字符和中文的长度是一样的。
废话少说,这里直接奉上详细插件代码,具体实现细节已经在代码里面有注释:

; (function ($) { 
$.fn.extend({ 
textAreaCount: function (options) { 
var $textArea = this; 
options = $.extend({ 
maxlength: 140, // 定义一个最大输入长度变量,初始化为500 
speed: 15, // 定义删除字符的速度变量 
msgstyle: "font-family:Arial;font-size:small;color:Gray;small;text-align:right;margin-top:3px;", // 提示信息显示样式 
msgNumStyle: "font-weight:bold;color:Gray;font-style:italic;font-size:larger;" // 提示信息里面剩余长度的样式 
}, options); 
var $msg = $("<div style='" + options.msgstyle + "'></div>"); 
// 在文本框框后面动态加载一个提示信息容器 
$textArea.after($msg); 
// 添加keypress事件用来判断当前内容是否还可输入 
$textArea.keypress(function (e) { 
// 8是Backspace按键, 46是Delete按键 
// 如果当前可输入的字符长度为0, 且按键值不是8和46,就不做任何操作 
if ($textArea.val().length >= options.maxlength && e.which != '8' && e.which != '46') { 
e.preventDefault(); 
return; 
} 
}).keyup(function () { // 添加keyup事件用来计算剩余输入字并显示 
var curlength = this.value.length; 
$msg.html("").html("还能输入<span style='" + options.msgNumStyle + "'>" + (options.maxlength - curlength) + "</span>字"); 
var init = setInterval(function () { 
// 如果输入的内容大于设置的最大长度,内容按设置的速度自动截取 
if ($textArea.val().length > options.maxlength) { 
$textArea.val($textArea.val().substring(0, options.maxlength)); 
$msg.html("").html("还能输入<span style='" + options.msgNumStyle + "'>" + options.maxlength + "</span>字"); 
} 
else { 
clearInterval(init); 
} 
}, options.speed); 
}).bind("contextmenu", function (e) { // 禁止鼠标右键,防止通过鼠标操作文本 
return false; 
}); 
// 首次加载现在可输入字符长度提示信息 
$msg.html("").html("还能输入<span style='" + options.msgNumStyle + "'>" + options.maxlength + "</span>字"); 
return this; 
} 
}); 
})(jQuery);

直接把上面代码复制保存到jquery.textareacounter.js.
Demo:
现在我们来看下如何使用该插件,首先要引用该插件,代码如下:
<script src="Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script> 
<script src="Scripts/jquery.textareacounter.js" type="text/javascript"></script>

页面结构代码:
<form id="form1" runat="server"> 
<div align="center"> 
<fieldset style="width: 400px; height: 250px"> 
<table cellpadding="3" cellspacing="3" border="0"> 
<tr> 
<td> 
<b>请输入您的评价:</b> 
</td> 
</tr> 
<tr> 
<td> 
<asp:TextBox ID="txtCmt" runat="server" TextMode="MultiLine" Width="300px" Rows="5"></asp:TextBox> 
</td> 
</tr> 
</table> 
</fieldset> 
</div> 
</form>

调用插件实现文本框控件txtCmt的字符限制功能,脚本代码:
<script type="text/javascript"> 
$(document).ready(function () { 
$("#txtCmt").textAreaCount({ maxlength: 200, speed: 256 }); 
}); 
</script>

注:要使用该插件,调用textAreaCount()方法即可,可以设置该方法的options参数,
options参数说明:
maxlength:设置最大输入字符数量
speed:设置截取字符的速度
msgstyle:设置文本提示信息主题的样式
msgNumStyle:设置文本提示信息里剩余字符数量的样式
最终使用该插件后的效果图:

ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter

Javascript 相关文章推荐
js option删除代码集合
Nov 12 Javascript
jQuery对象的selector属性用法实例
Dec 27 Javascript
Augularjs-起步详解
Jul 08 Javascript
JavaScript编写一个简易购物车功能
Sep 17 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
Sep 23 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
Feb 22 Javascript
angularjs实现搜索的关键字在正文中高亮出来
Jun 13 Javascript
JS轮播图实现简单代码
Feb 19 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
Nov 27 Javascript
js判断节假日实例代码
Dec 27 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
Mar 13 Javascript
利用JavaScript的Map提升性能的方法详解
Aug 14 Javascript
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
Feb 03 #Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
Feb 03 #Javascript
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
Feb 03 #Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
Feb 03 #Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
Feb 03 #Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
Feb 03 #Javascript
jQuery表单验证插件formValidator(改进版)
Feb 03 #Javascript
You might like
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
JavaScript实用技巧(一)
2010/08/16 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
2014/06/23 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
2015/08/06 Javascript
理解javascript定时器中的单线程
2016/02/23 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
js实现tab栏切换效果
2020/08/02 Javascript
vue浏览器返回监听的具体步骤
2021/02/03 Vue.js
[43:51]2014 DOTA2国际邀请赛中国区预选赛 Dream Times VS TongFu
2014/05/22 DOTA
[02:08]什么藏在DOTA2 TI9“小紫本”里?斧王历险记告诉你!
2019/05/17 DOTA
详解python里的命名规范
2018/07/16 Python
python列表使用实现名字管理系统
2019/01/30 Python
Python实例方法、类方法、静态方法的区别与作用详解
2019/03/25 Python
浅谈Python爬虫基本套路
2019/03/25 Python
python按行读取文件并找出其中指定字符串
2019/08/08 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
化工工艺专业求职信
2013/09/22 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
护士医德考评自我评价
2015/03/03 职场文书
教师评职称工作总结2015
2015/04/20 职场文书
2015年教师党员个人总结
2015/11/24 职场文书
2016年学习雷锋精神广播稿
2015/12/17 职场文书