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 相关文章推荐
javascript 检测浏览器类型和版本的代码
Sep 15 Javascript
HTML中的setCapture和releaseCapture使用介绍
Mar 21 Javascript
js 对小数加法精度处理示例说明
Dec 27 Javascript
JavaScript实现动态创建CSS样式规则方案
Sep 06 Javascript
JQuery替换DOM节点的方法
Jun 11 Javascript
使用Node.js为其他程序编写扩展的基本方法
Jun 23 Javascript
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
Jun 12 Javascript
微信小程序实现之手势锁功能实例代码
Jul 19 Javascript
使用Node.js实现一个多人游戏服务器引擎
Mar 13 Javascript
ZK中使用JS读取客户端txt文件内容问题
Nov 07 Javascript
查找Vue中下标的操作(some和findindex)
Aug 12 Javascript
详解vue 组件注册
Nov 20 Vue.js
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生成微信红包数组的方法
2019/09/05 PHP
jQuery 源码分析笔记(3) Deferred机制
2011/06/19 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
2014/09/21 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
jQuery实现用户信息表格的添加和删除功能
2017/09/12 jQuery
如何解决React官方脚手架不支持Less的问题(小结)
2018/09/12 Javascript
jquery检测上传文件大小示例
2020/04/26 jQuery
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
python 快速排序代码
2009/11/23 Python
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
python 异常处理总结
2016/10/18 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
Python Socket实现简单TCP Server/client功能示例
2017/08/05 Python
Python实现的字典值比较功能示例
2018/01/08 Python
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
使用python存储网页上的图片实例
2018/05/22 Python
python实现计算器功能
2019/10/31 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
详解从Django Allauth中进行登录改造小结
2019/12/18 Python
Numpy之reshape()使用详解
2019/12/26 Python
MATLAB数学建模之画图汇总
2020/07/16 Python
python代码能做成软件吗
2020/07/24 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
python的scipy.stats模块中正态分布常用函数总结
2021/02/19 Python
服装电子商务创业计划书
2014/01/30 职场文书
讲党性心得体会
2014/09/03 职场文书
2014教师教育实践活动对照检查材料思想汇报
2014/09/21 职场文书
中小学生学籍证明
2014/10/25 职场文书
应聘教师求职信范文
2015/03/20 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
如何用Node.js编写内存效率高的应用程序
2021/04/30 Javascript
OpenCV实现反阈值二值化
2021/11/17 Java/Android