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 Flash插入函数免激活代码
Mar 31 Javascript
javascript阻止scroll事件多次执行的思路及实现
Nov 08 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
Nov 22 Javascript
js实现延迟加载的方法
Jun 24 Javascript
jquery对象和DOM对象的任意相互转换
Feb 21 Javascript
简单谈谈require模块化jquery和angular的问题
Jun 23 jQuery
JS 中使用Promise 实现红绿灯实例代码(demo)
Oct 20 Javascript
一个基于react的图片裁剪组件示例
Apr 18 Javascript
JS装饰器函数用法总结
Apr 21 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
Jun 22 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
Feb 15 Javascript
一起来了解一下JavaScript的预编译(小结)
Mar 01 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 前一天或后一天的日期
2008/06/28 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
php curl的深入解析
2013/06/02 PHP
php提高网站效率的技巧
2015/09/29 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
Javascript表达式中连续的 &amp;&amp; 和 || 之赋值区别
2010/10/17 Javascript
在浏览器中获取当前执行的脚本文件名的代码
2011/07/19 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
2015/10/28 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
jQuery简单实现MD5加密的方法
2017/03/03 Javascript
Vue+element-ui 实现表格的分页功能示例
2018/08/18 Javascript
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
Python使用django获取用户IP地址的方法
2015/05/11 Python
浅析Python 中整型对象存储的位置
2016/05/16 Python
在python 不同时区之间的差值与转换方法
2019/01/14 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
对dataframe数据之间求补集的实例详解
2019/01/30 Python
python mysql断开重连的实现方法
2019/07/26 Python
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
Feelunique德国官方网站:欧洲最大的在线美容零售商
2019/07/20 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
岗位竞聘演讲稿
2014/01/10 职场文书
简单的辞职信范文
2014/01/18 职场文书
军训鉴定表自我鉴定
2014/02/13 职场文书
党员干部承诺书范文
2014/03/25 职场文书
拓展策划方案
2014/06/03 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
民主评议政风行风活动心得体会
2014/10/29 职场文书
餐厅收银员岗位职责
2015/04/07 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
漫画「日和酱的要求是绝对的」第3卷封面公开
2022/03/21 日漫