用于字符计数的jquery插件

时间:2011-02-22 18:30:35

标签: jquery jquery-plugins

根据Felix提供的代码,我为字符计数脚本创建了一个html页面。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" language="javascript" src="jquery.js"></script>
    <script type="text/javascript">
$(document).ready(function() {
    (function($) {
        $.fn.charlimit = function(options) {
            var def = {
            limit: 250,
                display: null
            };
            $.extend(def, options);
            var $display = $(def.display);

            $display.html(def.limit);

            this.bind('change keyup', function() {
                var l = $(this).val().length;
                $display.html(def.limit - l);
                if (l > def.limit) {
                    $(this).val(function(i, value) {
                        return value.substring(0, def.limit);
                    });
                    $display.html(def.limit - $(this).val().length);
                }
            });
            return this;
        };
    }(jQuery));


        //Plugin Call
        $('#message').charlimit({
            limit: 10,
            display: '#charCount'
        });
    });
</script>
</head>

<body>
    <textarea name="message" id="message" tabindex="4" rows="4" cols="35"></textarea>
    <p class="character_limit">Character limit: <span id="charCount"></span></p>
</body>
</html>

我面临的问题是......当字符数变为0并且我按下另一个键时... charcount将显示-60并且函数(i,value){.....}进入textarea。

请检查。

由于 LOkesh Yadav

1 个答案:

答案 0 :(得分:0)

使用函数声明似乎有一个小的语法不准确...奇怪,这是有效的,但也许这是正常的......

函数声明的最后一行是:

        };
    }(jQuery));

但应该是:

        };
    })(jQuery);

编辑虽然我在Firefox中没有收到错误,但似乎工作正常,所以这可能不是罪魁祸首。