• jquery插件——仿新浪微博限制输入字数的textarea


    内容链接地址:http://www.cnblogs.com/jone-chen/p/5213851.html;

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     5 <title>jquery插件——仿新浪微博限制输入字数的textarea</title>
     6 <script src="http://apps.bdimg.com/libs/jquery/1.10.1/jquery.min.js"></script>
     7 <style>
     8     *{padding: 0;margin: 0;}
     9     .box{width: 800px;margin: 0 auto;}
    10     #test{border:1px solid #d9d9d9; padding:0 1%;line-height: 1.8;font-family: "microsoft yahei";font-size: 14px;display: block; width: 98%; height: 80px;;}
    11     #info{padding: 3px 0;font-family: "microsoft yahei";font-size: 14px;}
    12 </style>
    13 </head>
    14 <body>
    15 <div class="box">
    16     <textarea id="test" width="100%"></textarea>
    17 </div>
    18 <script>
    19     (function($) {
    20         $.fn.limitTextarea = function(opts) {
    21             var defaults = {
    22                 maxNumber: 140, //允许输入的最大字数
    23                 position: 'top', //提示文字的位置,top:文本框上方,bottom:文本框下方
    24                 onOk: function() {}, //输入后,字数未超出时调用的函数
    25                 onOver: function() {} //输入后,字数超出时调用的函数   
    26             }
    27             var option = $.extend(defaults, opts);
    28             this.each(function() {
    29                 var _this = $(this);
    30                 var info = '<div id="info"><b>' + (option.maxNumber - _this.val().length) + '</b>/'+option.maxNumber+'</div>';
    31                 var fn = function() {
    32                     var $info = $('#info');
    33                     var extraNumber = option.maxNumber - _this.val().length;
    34                     
    35                     if (extraNumber >= 0) {
    36                         $info.html('<b>' + extraNumber + '</b>/'+option.maxNumber);
    37                         option.onOk();
    38                     } else {
    39                         $info.html('已经超出<b style="color:red;">' + (-extraNumber) + '</b>个字');
    40                         option.onOver();
    41                     }
    42                 };
    43                 switch (option.position) {
    44                     case 'top':
    45                         _this.before(info);
    46                         break;
    47                     case 'bottom':
    48                     default:
    49                         _this.after(info);
    50                 }
    51                 //绑定输入事件监听器
    52                 if (window.addEventListener) { //先执行W3C
    53                     _this.get(0).addEventListener("input", fn, false);
    54                 } else {
    55                     _this.get(0).attachEvent("onpropertychange", fn);
    56                 }
    57                 if (window.VBArray && window.addEventListener) { //IE9
    58                     _this.get(0).attachEvent("onkeydown", function() {
    59                         var key = window.event.keyCode;
    60                         (key == 8 || key == 46) && fn(); //处理回退与删除
    61                     });
    62                     _this.get(0).attachEvent("oncut", fn); //处理粘贴
    63                 }
    64             });
    65         }
    66     })(jQuery)
    67     //插件调用;
    68     $(function() {
    69         $('#test').limitTextarea({
    70             maxNumber: 140, //最大字数
    71             position: 'bottom', //提示文字的位置,top:文本框上方,bottom:文本框下方
    72             onOk: function() {
    73                 $('#test').css('background-color', 'white');
    74             }, //输入后,字数未超出时调用的函数
    75             onOver: function() {
    76                 $('#test').css('background-color', 'lightpink');
    77             } //输入后,字数超出时调用的函数,这里把文本区域的背景变为粉红色   
    78         });
    79     });
    80 </script>
    81 </body>
    82 </html>
  • 相关阅读:
    CF1008D Pave the Parallelepiped
    Luogu P3324 [SDOI2015]星际战争
    Luogu P3157 [CQOI2011]动态逆序对
    CF1295E Permutation Separation
    位元算
    JavaScript 寻找数组中的第N大的元素
    JS常见的数组排序算法
    最新面试总结
    JavaScript BOM浏览器对象模型
    JavaScript DOM 事件
  • 原文地址:https://www.cnblogs.com/helena000/p/6949901.html
Copyright © 2020-2023  润新知