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 Prototype 对象扩展
May 15 Javascript
js showModalDialog弹出窗口实例详解
Jan 07 Javascript
简单方法判断JavaScript对象为null或者属性为空
Sep 26 Javascript
使用AngularJS创建单页应用的编程指引
Jun 19 Javascript
bootstrap网页框架的使用方法
May 10 Javascript
AngularJS 面试题集锦
Sep 06 Javascript
JavaScript基础之this详解
Jun 04 Javascript
微信小程序动态增加按钮组件
Sep 14 Javascript
javascript实现文本框标签验证的实例代码
Oct 14 Javascript
js 计算图片内点个数的示例代码
Apr 04 Javascript
Node.js学习之内置模块fs用法示例
Jan 22 Javascript
npx create-react-app xxx创建项目报错的解决办法
Feb 17 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
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
相对路径转化成绝对路径
2007/04/10 PHP
PHP与Java进行通信的实现方法
2013/10/21 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
js触发asp.net的Button的Onclick事件应用
2013/02/02 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
JavaScript 创建运动框架的实现代码
2013/05/08 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
web.js.字符串与正则表达式操作
2017/05/13 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
vue.js iview打包上线后字体图标不显示解决办法
2020/01/20 Javascript
node.JS事件机制与events事件模块的使用方法详解
2020/02/06 Javascript
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
[45:25]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
python实现树形打印目录结构
2018/03/29 Python
解决Python2.7中IDLE启动没有反应的问题
2018/11/30 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
利用PyCharm Profile分析异步爬虫效率详解
2019/05/08 Python
wxPython实现带颜色的进度条
2019/11/19 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
Python 代码调试技巧示例代码
2020/08/11 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
科颜氏英国官网:Kiehl’s英国
2019/11/20 全球购物
高一生物教学反思
2014/01/17 职场文书
死亡证明书样本说明
2014/10/18 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL