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显示隐藏层比较不错的方法分析
Sep 30 Javascript
input输入框的自动匹配(原生代码)
Mar 19 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
Dec 18 Javascript
jQuery中removeData()方法用法实例
Dec 27 Javascript
干货!教大家如何选择Vue和React
Mar 13 Javascript
js实现省市级联效果分享
Aug 10 Javascript
Vue 创建组件的两种方法小结(必看)
Feb 23 Javascript
vue 纯js监听滚动条到底部的实例讲解
Sep 03 Javascript
H5实现手机拍照和选择上传功能
Dec 18 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
May 06 Javascript
vue开发简单上传图片功能
Jun 30 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
Aug 07 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常用函数 推荐收藏保存
2010/02/21 PHP
Youku 视频绝对地址获取的方法详解
2013/06/26 PHP
一个PHP针对数字的加密解密类
2014/03/20 PHP
php获取网页上所有链接的方法
2015/04/03 PHP
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
jQuery EasyUI菜单与按钮详解
2016/07/13 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
js实现图片懒加载效果
2017/07/17 Javascript
vue中render函数的使用详解
2018/10/12 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
JS实现前端路由功能示例【原生路由】
2020/05/29 Javascript
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
不要用强制方法杀掉python线程
2017/02/26 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
2017/04/11 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
用Anaconda安装本地python包的方法及路径问题(图文)
2019/07/16 Python
python with (as)语句实例详解
2020/02/04 Python
python的sys.path模块路径添加方式
2020/03/09 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
让IE可以变相支持CSS3选择器
2010/01/21 HTML / CSS
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
怎样让char类型的东西转换成int类型
2013/12/09 面试题
自荐信要包含哪些内容
2013/11/06 职场文书
经贸韩语专业大学生职业规划
2014/02/14 职场文书
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
社团活动总结报告
2014/06/27 职场文书
免职通知
2015/04/23 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
男生贾里读书笔记
2015/06/30 职场文书
如何利用map实现Nginx允许多个域名跨域
2021/03/31 Servers
MySQL 数据丢失排查案例
2021/05/08 MySQL
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
部分武汉产收音机展览
2022/04/07 无线电