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 遍历对象的属性的代码
Dec 29 Javascript
formStorage 基于jquery的一个插件(存储表单中元素的状态到本地)
Jan 20 Javascript
AngularJS基础教程之简单介绍
Sep 27 Javascript
JavaScript类型系统之正则表达式
Jan 05 Javascript
利用JQuery写一个简单的异步分页插件
Mar 07 Javascript
JS结合bootstrap实现基本的增删改查功能
Jul 22 Javascript
给easyui的datebox控件添加清空按钮的实现方法
Nov 09 Javascript
解决vue中对象属性改变视图不更新的问题
Feb 23 Javascript
JavaScript轮播停留效果的实现思路
May 24 Javascript
jQuery-ui插件sortable实现自由拖动排序
Dec 01 jQuery
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
Dec 11 jQuery
layui 上传文件_批量导入数据UI的方法
Sep 23 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中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
2015/10/09 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
2019/04/10 PHP
PHP迭代器和生成器用法实例分析
2019/09/28 PHP
JQuery中getJSON的使用方法
2010/12/13 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
Javascript实现苹果悬浮虚拟按钮
2016/04/10 Javascript
Angularjs中UI Router的使用方法
2016/05/14 Javascript
Ionic+AngularJS实现登录和注册带验证功能
2017/02/09 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
JavaScript实现三级联动菜单实例代码
2017/06/26 Javascript
详解Vue-axios 设置请求头问题
2018/12/06 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
JS绘图Flot应用图形绘制异常解决方案
2020/10/16 Javascript
解读Django框架中的低层次缓存API
2015/07/24 Python
python更新列表的方法
2015/07/28 Python
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
一条命令解决mac版本python IDLE不能输入中文问题
2018/05/15 Python
Python通过调用有道翻译api实现翻译功能示例
2018/07/19 Python
Pytorch的mean和std调查实例
2020/01/02 Python
Python 统计位数为偶数的数字代码详解
2020/03/15 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
FC-Moto美国:欧洲最大的摩托车服装和头盔商店之一
2019/08/24 全球购物
租房安全协议书
2014/08/20 职场文书
教师民族团结演讲稿
2014/08/27 职场文书
离婚协议书范本
2015/01/26 职场文书
小学语文教师年度考核个人总结
2015/02/05 职场文书
化妆品促销活动总结
2015/05/07 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server
Golang 实现超大文件读取的两种方法
2021/04/27 Golang
Mysql 如何查询时间段交集
2021/06/08 MySQL
SpringBoot2 参数管理实践之入参出参与校验的方式
2021/06/16 Java/Android
帮你提高开发效率的JavaScript20个技巧
2021/06/18 Javascript