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 event事件在IE、FF兼容性问题
Jan 01 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
Jul 14 Javascript
JavaScript中的比较操作符&gt;、=、
Dec 31 Javascript
jquery获取select选中值的方法分析
Dec 22 Javascript
ionic开发中点击input时键盘自动弹出
Dec 23 Javascript
浅谈Javascript事件对象
Feb 05 Javascript
requirejs + vue 项目搭建详解
Jun 16 Javascript
简述vue状态管理模式之vuex
Aug 29 Javascript
详解如何快速配置webpack多入口脚手架
Dec 28 Javascript
微信公众号平台接口开发 菜单管理的实现
Aug 14 Javascript
js实现右键弹出自定义菜单
Sep 08 Javascript
JS + HTML 罗盘式时钟的实现
May 21 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
PHP4实际应用经验篇(1)
2006/10/09 PHP
php jq jquery getJSON跨域提交数据完整版
2013/09/13 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
php实现cookie加密的方法
2015/03/10 PHP
PHP7.0版本备注
2015/07/23 PHP
详细分析PHP 命名空间(namespace)
2020/06/30 PHP
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
jQuery实现的Email中的收件人效果(按del键删除)
2011/03/20 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
Javascript中的delete操作符详细介绍
2014/06/06 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
php利用curl获取远程图片实现方法
2015/10/26 Javascript
jQuery插件制作的实例教程
2016/05/16 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
基于bootstrap实现收缩导航条
2017/03/17 Javascript
Angular2.0实现modal对话框的方法示例
2018/02/18 Javascript
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
Python json模块使用实例
2015/04/11 Python
python实现三维拟合的方法
2018/12/29 Python
NumPy 数组使用大全
2019/04/25 Python
简单了解python单例模式的几种写法
2019/07/01 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
Zavvi荷兰:英国大型音像制品和图书游戏零售商
2018/03/22 全球购物
GoDaddy英国:全球排名第一的域名注册商
2018/06/08 全球购物
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
Ajax请求总共有多少种Callback
2016/07/17 面试题
关于学习的演讲稿
2014/05/10 职场文书
投标诚信承诺书
2014/05/26 职场文书
演讲比赛策划方案
2014/06/11 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
Java中PriorityQueue实现最小堆和最大堆的用法
2021/06/27 Java/Android
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python