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 相关文章推荐
ext combobox动态加载数据库数据(附前后台)
Jun 17 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
Apr 28 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
Sep 15 Javascript
jquery中object对象循环遍历的方法
Dec 18 Javascript
基于js中的原型、继承的一些想法
Aug 10 Javascript
关于axios不能使用Vue.use()浅析
Jan 12 Javascript
layui默认选中table的CheckBox复选框方法
Sep 19 Javascript
layui 弹出层值回传解决方式
Nov 14 Javascript
基于jQuery实现可编辑的表格
Dec 11 jQuery
微信小程序后端无法保持session的原因及解决办法问题
Mar 20 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
Jul 20 Javascript
vue 数据操作相关总结
Dec 17 Vue.js
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
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
通过javascript进行UTF-8编码的实现方法
2016/06/27 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
2017/04/04 jQuery
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
jQuery实现所有验证通过方可提交的表单验证
2017/11/21 jQuery
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
JS事件循环机制event loop宏任务微任务原理解析
2020/08/04 Javascript
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
Python2.x版本中基本的中文编码问题解决
2015/10/12 Python
python解决pandas处理缺失值为空字符串的问题
2018/04/08 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
python正则表达式匹配IP代码实例
2019/12/28 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
python实现简单的五子棋游戏
2020/09/01 Python
python基于爬虫+django,打造个性化API接口
2021/01/21 Python
Python 转移文件至云对象存储的方法
2021/02/07 Python
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
2013/07/06 面试题
年终考核评语
2014/01/19 职场文书
优良学风班总结材料
2014/02/08 职场文书
共产党员公开承诺书
2014/03/25 职场文书
最美乡村医生事迹材料
2014/06/02 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
给医院的感谢信
2015/01/21 职场文书
会计人员岗位职责
2015/02/03 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书
医生行业员工的辞职信
2019/06/24 职场文书