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限制checkbox选中个数以限制六个为例
Jul 15 Javascript
js使用for循环查询数组中是否存在某个值
Aug 12 Javascript
jQuery实现微信长按识别二维码功能
Aug 26 Javascript
input file上传 图片预览功能实例代码
Oct 25 Javascript
Vue.js第四天学习笔记(组件)
Dec 02 Javascript
echarts饼图扇区添加点击事件的实例
Oct 16 Javascript
Angular自定义组件实现数据双向数据绑定的实例
Dec 11 Javascript
webpack开发环境和生产环境的深入理解
Nov 08 Javascript
Vue-CLI项目中路由传参的方式详解
Sep 01 Javascript
vue在响应头response中获取自定义headers操作
Jul 24 Javascript
微信小程序实现多张图片上传功能
Nov 18 Javascript
基于JavaScript实现随机点名器
Feb 25 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数据库配置文件一般做法分享
2012/07/07 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
2014/02/24 PHP
php制作基于xml的RSS订阅源功能示例
2017/02/08 PHP
php输出图像的方法实例分析
2017/02/16 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
javascript 日期常用的方法
2009/11/11 Javascript
JSON.stringify 语法实例讲解
2012/03/14 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
2014/09/21 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
2017/09/01 Javascript
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
Python编码类型转换方法详解
2016/07/01 Python
机器学习10大经典算法详解
2017/12/07 Python
python基于celery实现异步任务周期任务定时任务
2019/12/30 Python
Python全面分析系统的时域特性和频率域特性
2020/02/26 Python
python实现数字炸弹游戏
2020/07/17 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
大三学生入党思想汇报
2014/01/02 职场文书
自动化毕业生专业自荐书范文
2014/02/04 职场文书
2014年元旦活动方案
2014/02/15 职场文书
初中教师业务学习材料
2014/05/12 职场文书
摄影展策划方案
2014/06/02 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
发工资啦!教你用Python实现邮箱自动群发工资条
2021/05/10 Python