ASP.NET jQuery 食谱13 (原创jQuery文本框字符

系统 1462 0

这节介绍一个自己写的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:设置文本提示信息里剩余字符数量的样式

 

最终使用该插件后的效果图:

ASP.NET jQuery 食谱13 (原创jQuery文本框字符限制插件-TextArea Counter)_第1张图片

如果你在使用中有什么好的建议,欢迎提出来。

    

    

    






 

ASP.NET jQuery 食谱13 (原创jQuery文本框字符限制插件-TextArea Counter)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论