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 相关文章推荐
静态页面的值传递(三部曲)
Sep 25 Javascript
不错的一个日期输入 动态
Nov 06 Javascript
Javascript异步编程的4种方法让你写出更出色的程序
Jan 17 Javascript
浅析Js中的单引号与双引号问题
Nov 06 Javascript
jquery easyui 结合jsp简单展现table数据示例
Apr 18 Javascript
node.js实现BigPipe详解
Dec 05 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
Nov 17 Javascript
vue.js事件处理器是什么
Mar 20 Javascript
JavaScript实现的数字与字符串转换功能示例
Aug 23 Javascript
JavaScript数组特性与实践应用深入详解
Dec 30 Javascript
浅谈webpack devtool里的7种SourceMap模式
Jan 14 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
Nov 26 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中__get()和__set()的用法实例详解
2013/06/04 PHP
解析php类的注册与自动加载
2013/07/05 PHP
Smarty中常用变量操作符汇总
2014/10/27 PHP
php中动态调用函数的方法
2015/03/16 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
2019/08/12 PHP
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
2013/09/16 Javascript
avascript中的自执行匿名函数应用示例
2014/09/15 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
2016/06/22 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
2016/09/05 Javascript
arcgis for js 修改infowindow样式的方法
2016/11/02 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
详解Angular Reactive Form 表单验证
2017/07/06 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
vue的全局提示框组件实例代码
2018/02/26 Javascript
vue-cli 如何打包上线的方法示例
2018/05/08 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
layer页面跳转,获取html子节点元素的值方法
2019/09/27 Javascript
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
详解python的四种内置数据结构
2019/03/19 Python
使用Python制作一个打字训练小工具
2019/10/01 Python
Python线程指南分享
2019/11/19 Python
如何基于python实现归一化处理
2020/01/20 Python
万豪国际住宅与别墅集团:Homes & Villas by Marriott International
2020/10/08 全球购物
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
中学生操行评语
2014/04/24 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
三八红旗手主要事迹材料
2015/11/04 职场文书
Java字符串逆序方法详情
2022/03/21 Java/Android
利用Python多线程实现图片下载器
2022/03/25 Python
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android