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 利用className得到对象的实现代码
Nov 15 Javascript
JavaScript阻止浏览器返回按钮的方法
Mar 18 Javascript
jQuery Validate表单验证入门学习
Dec 18 Javascript
AngularJS 最常用的功能汇总
Feb 17 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
Feb 19 Javascript
利用node.js制作命令行工具方法教程(一)
Jun 22 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
Dec 25 Javascript
Vue SSR 组件加载问题
May 02 Javascript
详解Vue源码学习之callHook钩子函数
Jul 25 Javascript
jquery.param()实现数组或对象的序列化方法
Oct 08 jQuery
vue 项目 iOS WKWebView 加载
Apr 17 Javascript
JS数组的常用10种方法详解
May 08 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
ThinkPHP实现多数据库连接的解决方法
2014/07/01 PHP
Drupal简体中文语言包安装教程
2014/09/27 PHP
PHP实现的简单日历类
2014/11/29 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
jQuery效果 slideToggle() 方法(在隐藏和显示之间切换)
2011/06/28 Javascript
Kibo 用于处理键盘事件的Javascript工具库
2011/10/28 Javascript
JQuery解析HTML、JSON和XML实例详解
2014/03/29 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
详解Angular5路由传值方式及其相关问题
2018/04/28 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
layui上传图片到服务器的非项目目录下的方法
2019/09/26 Javascript
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
归纳整理Python中的控制流语句的知识点
2015/04/14 Python
Django的分页器实例(paginator)
2017/12/01 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
matplotlib subplots 设置总图的标题方法
2018/05/25 Python
python中的插值 scipy-interp的实现代码
2018/07/23 Python
python requests post多层字典的方法
2018/12/27 Python
在pycharm中创建django项目的示例代码
2020/05/28 Python
CSS3 translate导致字体模糊的实例代码
2019/08/30 HTML / CSS
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
区三好学生主要事迹
2014/01/30 职场文书
会议邀请书范文
2014/02/02 职场文书
幼儿园母亲节活动方案
2014/03/10 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
股指期货心得体会
2014/09/10 职场文书
单位接收函格式
2015/01/30 职场文书
团员自我评价范文
2015/03/10 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
python实现简单的井字棋
2021/05/26 Python