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 相关文章推荐
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
Oct 10 Javascript
jQuery 和 CSS 的文本特效插件集锦
Dec 12 Javascript
js获取内联样式的方法
Jan 27 Javascript
JavaScript 事件入门知识
Apr 13 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
Dec 25 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
Dec 08 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
Apr 23 jQuery
微信小程序movable view移动图片和双指缩放实例代码
Aug 08 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
Aug 18 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
Sep 20 jQuery
微信小程序自定义prompt组件步骤详解
Jun 12 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
Sep 02 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
特转载一高手总结PHP学习资源和链接.
2006/12/05 PHP
php 服务器调试 Zend Debugger 的安装教程
2009/09/25 PHP
Php图像处理类代码分享
2012/01/19 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
PHPCMS手机站伪静态设置详细教程
2017/02/06 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
javascript当中的代码嗅探扩展原生对象和原型(prototype)
2013/01/11 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
2016/05/10 Javascript
详解JavaScript中this关键字的用法
2016/05/26 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
微信小程序 获取相册照片实例详解
2016/11/16 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
react 中父组件与子组件双向绑定问题
2019/05/20 Javascript
js图片无缝滚动插件使用详解
2020/05/26 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
JavaScript点击按钮生成4位随机验证码
2021/01/28 Javascript
使用graphics.py实现2048小游戏
2015/03/10 Python
python中反射用法实例
2015/03/27 Python
使用python读取csv文件快速插入数据库的实例
2018/06/21 Python
Python : turtle色彩控制实例详解
2020/01/19 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
使用canvas绘制超炫时钟
2014/12/17 HTML / CSS
国际象棋商店:The Chess Store
2018/07/09 全球购物
.NET remoting的两种通道是什么
2016/05/31 面试题
运动会跳远广播稿
2014/02/04 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript