jQuery maxlength插件-判断输入域字符长度

插件的官方地址http://remysharp.com/2008/06/30/maxlength-plugin/

调用很简单:

<input type="text" name="" value="" id="j-text" maxlength="100"/><span>剩余字数:<em id="j-tip-text"></em></span><script src="jquery1.4.4.js" type="text/网页特效" charset="utf-8"></script><script src="maxlength.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript" charset="utf-8">    $('#j-text').maxlength('#j-tip-text');</script></body></html>

但是感觉这样写起来很麻烦,而且最蛋疼的是验证输入域的外围必须要有一个form标签。于是就想着改造一下,最好是直接在input里面写maxlength属性,不用去页面调用最好。

于是就插入了这么一段:

var $tip = $('<span>剩余字数:<em></em></span>');

var $charsLeft = $tip.find('em');

$tip.insertAfter($field);

这样禁用JS的情况下就不会出现没有用的提示了,不够感觉更好的应该是把固定的长度说明提示写在后面,然后再用JS移除掉,换上动态的提示。

一个实例:

<!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>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title></title>    <style type="text/css教程">    form{ border-top: 1px solid #e4e4e4;}    label{display: block;}    form span{ display: block;}    </style></head><body>    <form action="#" method="get" accept-charset="utf-8">        <p><label for="">input:</label>            <input type="text" name="" value="" id="j-text" maxlength="100"/>            <span>剩余字数:<em id="j-tip-text"></em></span></p>        <p><label for="">textarea:</label>            <textarea name="Name" rows="3" cols="40" id="j-area" maxlength="100"></textarea>            <span>剩余字数:<em id="j-tip-area"></em></span>            <input type="hidden" name="maxlength" value="100" id="j-area-hide"/></p>        <p><label for="">by word:</label>            <input type="text" name="" value="" id="j-word" maxlength="100"/>            <span>剩余字数:<em id="j-tip-word"></em></span></p>    </form>    <form action="#" method="get" accept-charset="utf-8">        <p><label for="">input:</label>            <input class="maxlength" type="text" name="" value="" id="j-text-1" maxlength="100"/></p>        <p><label for="">textarea:</label>            <textarea class="maxlength" name="Name" rows="3" cols="30" id="j-area-1" maxlength="100"></textarea>            <input type="hidden" name="maxlength" value="100" id="j-area-hide"/></p>    </form>    <script src="jquery1.4.4.js" type="text/javascript" charset="utf-8"></script>    <script src="maxlength.js" type="text/javascript" charset="utf-8"></script>    <script type="text/javascript" charset="utf-8">        $('#j-text').maxlength('#j-tip-text');        $('#j-area').maxlength('#j-tip-area');        $('#j-word').maxlength({            'feedback':'#j-tip-word',            'words':true        });        $('.maxlength').maxlength();    </script></body></html>

maxlength插件说明,只是标识一下改动的地方而已,改天再好好改改:

(function ($) {

$.fn.maxlength = function (settings) {    //如果只有一个参数,就默认为现实结果的容器    if (typeof settings == 'string') {        settings = { feedback : settings };    }    //配置参数,缺少的用默认替代    settings = $.extend({}, $.fn.maxlength.defaults, settings);    //获取输入域的字符/单词个数    function length(el) {        var parts = el.value;        if ( settings.words )            parts = el.value.length ? parts.split(/s+/) : { length : 0 };        return parts.length;    }

return this.each(function () {        var field = this,            $field = $(field),            //这一点但觉很不好,限制死了外围必须有一个form标签            $form = $(field.form),            limit = settings.useInput ? $form.find('input[name=maxlength]').val() : $field.attr('maxlength'),            $charsLeft = $form.find(settings.feedback);

//添加的        var $tip = $('<span>剩余字数:<em></em></span>');        var $charsLeft = $tip.find('em');        $tip.insertAfter($field);

function limitCheck(event) {            var len = length(this),                exceeded = len >= limit,                code = event.keyCode;

if ( !exceeded )                return;

switch (code) {                case 8:  // allow delete                case 9:                case 17:                case 36: // and cursor keys                case 35:                case 37:                 case 38:                case 39:                case 40:                case 46:                case 65:                    return;

default:                    return settings.words && code != 32 && code != 13 && len == limit;            }        }

var updateCount = function () {            var len = length(field),                diff = limit - len;

$charsLeft.html( diff || "0" );

// truncation code            if (settings.hardLimit && diff < 0) {                field.value = settings.words ?                     // split by white space, capturing it in the result, then glue them back                    field.value.split(/(s+)/, (limit*2)-1).join('') :                    field.value.substr(0, limit);

updateCount();            }        };

$field.keyup(updateCount).change(updateCount);        if (settings.hardLimit) {            $field.keydown(limitCheck);        }

updateCount();    });};//这里可以加一个separation,用来自定义分隔符,比如用“,”什么的分割$.fn.maxlength.defaults = {    useInput : false,    hardLimit : true,    feedback : '.charsLeft',    words : false};

})(jQuery);

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索this
jquery 字符串 length、字符串长度length、jquery 字符串长度、jquery获取字符串长度、jquery截取字符串长度,以便于您获取更多的相关知识。

时间: 2024-10-29 01:38:22

jQuery maxlength插件-判断输入域字符长度的相关文章

PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能

我们在很多项目中使用了搜索功能来帮助用户更快更准确的找到想要的信息.本文将介绍如何实现用户输入自动提示的功能,就像谷歌百度搜索引擎一样,当用户输入关键字时,输入框下方会有提示,将与关键字相关的信息展现出来供用户选择,提升了用户体验. 本文将使用jquery ui的autocomplete插件,结合后端PHP,数据源通过PHP读取mysql数据表的数据. XHTML 首先将jquery库和相关ui插件,以及css导入.   代码如下: <link rel="stylesheet"

PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能_php实例

我们在很多项目中使用了搜索功能来帮助用户更快更准确的找到想要的信息.本文将介绍如何实现用户输入自动提示的功能,就像谷歌百度搜索引擎一样,当用户输入关键字时,输入框下方会有提示,将与关键字相关的信息展现出来供用户选择,提升了用户体验. 本文将使用jquery ui的autocomplete插件,结合后端PHP,数据源通过PHP读取mysql数据表的数据. XHTML 首先将jquery库和相关ui插件,以及css导入. 复制代码 代码如下: <link rel="stylesheet&quo

EditText监听方法,实时的判断输入多少字符_Android

最近在写一个小项目,其中有一点用到了显示EditText中输入了多少个字符,像微博中显示剩余多少字符的功能.在EditText提供了一个方法addTextChangedListener实现对输入文本的监控.下边是我自己写的一个Demo. 代码实现: 布局文件main.xml [html] view plain copy <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:androi

EditText监听方法,实时的判断输入多少字符

最近在写一个小项目,其中有一点用到了显示EditText中输入了多少个字符,像微博中显示剩余多少字符的功能.在EditText提供了一个方法addTextChangedListener实现对输入文本的监控.下边是我自己写的一个Demo. 代码实现: 布局文件main.xml [html] view plain copy <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:androi

JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数_jquery

JavaScript代码: 复制代码 代码如下: function counter(object){     var limit = $(object).attr('maxlength');     if($(object).next(".counter").val()==undefined){         $(object).after("<span class='counter'></span>/"+limit);     }    

jquery 计算文本框输入字符数代码

jquery 计算文本框输入字符数代码 asp教程x文件: 引入js <script type="text/网页特效" src="../script/maxlength.js"></script> 因为是限制textarea控件,所以必须使用一个hidden input来控制长度,原因是textarea的maxlength属性取值为用户实际输入的字符长度.如果是限制input的输入长度,就不需要了.                     &

自写的一个jQuery圆角插件_jquery

原理是利用1px的div,具体实现看代码. 使用方法: 复制代码 代码如下: $('.test').rounder(); 这样会根据默认的设置产生一个圆角框,效果如图: 圆角处会有点锯齿:(如果仅此而已,那肯定是不够的.我们会想加上自己的一个样式该怎么办?使用方法: 复制代码 代码如下: $('.test').rounder({borderColor:'red',backgroundColor:'#EEE',color:'blue'}); 效果如图: 接下来我就来讲讲实现过程了,先附上jQuer

JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)_javascript技巧

js判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个) 文本输入时,由于数据库表字段长度限制会导致提交失败,因此想到了此方法验证. 废话不多说上代码: <html> <head> <title>js判断输入字符串长度(汉字算两个字符,字母数字算一个)</title> <style type="text/css"> .pbt { margin-bottom: 10px; } .ie6 .pbt .ftid a, .ie

对象-js 用jquery 判断字符长度是时候出现的一个问题

问题描述 js 用jquery 判断字符长度是时候出现的一个问题 if($("#A").val().length<200) { alert("不能超过200个字符"); return false ; } 在js这样会报 无法获取属性 'length'的值 对象为空 或者 未定义 解决方案 这是jquery对象,js不能这样用 解决方案二: 1,请确定存在某元素的id为A 2.请导入jquery的JS 3.再有问题上图 4.你这逻辑就有错误,($("#