ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter_jquery

•可限制最大输入字符长度
•可设置字符截取速度
•可自定义提示信息文本样式(可以改进自定义文本内容)
该插件统计英文字符和中文的长度是一样的。
废话少说,这里直接奉上详细插件代码,具体实现细节已经在代码里面有注释:

复制代码 代码如下:

; (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:设置文本提示信息里剩余字符数量的样式
最终使用该插件后的效果图:

时间: 2024-08-29 11:32:33

ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter_jquery的相关文章

asp.net-请教jquery easyui 如何点击文本框弹出页面,选择行后双击赋值到文本框?

问题描述 请教jquery easyui 如何点击文本框弹出页面,选择行后双击赋值到文本框? 在点击添加按钮后出现的添加页面里面点击一行文本框,出现一新页面,双击新页面的任意行后赋值到文本框 解决方案 这题主要是靠js实现,你主要是不会如何双击取值吧! 首先,我不知道你出现的"新页面"到底是什么页面,是一个表格,还是什么网页文字! 如果是datagrid,那就很简单了,EasyUI里面应该提供的有双击取值方法,自己去查一下! 如果是什么网页文字一类的,就直接复制粘贴吧!

jQuery设置和移除文本框默认值的方法

 这篇文章主要介绍了jQuery设置和移除文本框默认值的方法,实例分析了jQuery操作文本框的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了jQuery设置和移除文本框默认值的方法.分享给大家供大家参考.具体分析如下: 开始时,文本框设定一个默认值.当光标移动到文本框时,如果文本框当前值是默认值,那么清空:离开文本框时,文本框值如果为空,那么将文本框值设置为默认值. 代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1

jQuery简单实现点击文本框复制内容到剪贴板上的方法_jquery

本文实例讲述了jQuery简单实现点击文本框复制内容到剪贴板上的方法.分享给大家供大家参考,具体如下: //点击文本框复制其内容到剪贴板上方法 function copyToClipboard(txt) { if (window.clipboardData) { window.clipboardData.clearData(); window.clipboardData.setData("Text", txt); alert("已经成功复制到剪帖板上!"); } e

jQuery设置和移除文本框默认值的方法_jquery

本文实例讲述了jQuery设置和移除文本框默认值的方法.分享给大家供大家参考.具体分析如下: 开始时,文本框设定一个默认值.当光标移动到文本框时,如果文本框当前值是默认值,那么清空:离开文本框时,文本框值如果为空,那么将文本框值设置为默认值. 代码如下: $(document).ready(function() { //each遍历文本框 $(".input").each(function() { //保存当前文本框的值 var vdefault = this.value; $(thi

JQuery easy ui验证在文本框为空时不会触发验证事件,求解决!!!

问题描述 JQuery easy ui验证在文本框为空时不会触发验证事件,求解决!!! JQuery easy ui验证在文本框为空时不会触发验证事件, 用户组: 这里我用JQuery easy ui 生成了一个下拉框,为空时文本框不会触发验证事件 这里是验证的扩展代码: $.extend($.fn.validatebox.defaults.rules, { valiEmp: { //验证用户Id是否有效 validator: function (value, param) { var bl =

用jquery验证js里面的一个文本框 字符长度不能超过 10个数

问题描述 用jquery验证js里面的一个文本框 字符长度不能超过 10个数 用jquery验证js里面的一个文本框 字符长度不能超过 10个数 除了用$("#A").val().length>10之外还能怎么判断? 解决方案 我觉得,如果只是长度限制的话,完全可以不用js.你直接只用文本框里面的maxlength长度限制标签;例如: 解决方案二: <input name="A" type="text" id="A"

jquery mobile中怎么修改文本框的边框颜色?

问题描述 jquery mobile中怎么修改文本框的边框颜色? jquery mobile中怎么修改文本框的边框颜色?求帮忙 解决方案 http://blog.csdn.net/sean1203/article/details/5087474 其实你对象选择器直接改也行的:$("#change").corner(""); $("#change").css(""); . . . 方法很多很灵活的,建议去看看w3school 采

ASP.net RadGrid 控件怎么禁用文本框?

问题描述 ASP.net RadGrid 控件怎么禁用文本框? 业务要求需要将RadGrid控件的两个时间文本框禁用,状态变为不可编辑,晚辈没有接触过RadGrid控件,请各位前辈帮帮晚辈!

asp.net中,如何验证输入文本框的是小数点后带两位的数字,即money类型

问题描述 asp.net中,如何验证输入文本框的是小数点后带两位的数字,即money类型.请各位高手指点 解决方案 解决方案二:functionIsFloat(name)//验证输入小数(小数点后2位){if(name.value!=""){if(name.value.search(/^[0-9]+$/)!=-1||name.value.search(/^([0-9]+)|([0-9]+.[0-9]*)|([0-9]*.[0-9]+)$/)!=-1){name.value=Math.r