`
ianylb
  • 浏览: 73544 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

JavaScript实现textarea的maxlength

 
阅读更多
这个脚本模拟实现textarea的maxlength,无闪限制输入固定长度的字符串
目前只支持IE(ff,chrome中textarea的maxlength效果与input中的maxlength一样)
在之后会想办法做到兼容长用的浏览器


JavaScript脚本如下:
/*--------------------------------------------------|
| 文件中的对象名 | 文件路径                                                                                                                  |
|---------------------------------------------------|
| Copyright (c) 2002-2003 Geir Landr                |
| Email  : ianylb@sina.com、yelb@surekam.com         |
|                                                   |
| This script can be used freely as long as all     |
| copyright messages are intact.                    |
| Updated: 11.06.2011                               |
| Description: 因为textarea中没有maxlength这个属性,                           |
|           这个脚本模拟了input中maxlength功能,限定                                  |
| 输入固定长度的字符串。此脚本暂时只支持IE               |
|--------------------------------------------------*/
var MaxLengthCheck = function(){
    /**
     * 如果textarea没有maxlength属性,那么默认可输入2048个字符
     */
    var textMaxLength = 2048;
    /**
     * 当按键按下时,可绑定这个方法
     */
    this.doKeyPress = function(element, event){
        var maxLength = element.getAttribute("maxLength");
        maxLength = maxLength || textMaxLength;
        if (maxLength !== "") {
            if (element.value.length >= maxLength) {
                if (window.event) {
                    window.event.returnValue = null;
                }
                else {
                    return false;
                }
            }
        }
        this.doOtherThing();
    };
    /**
     * 当粘贴时,可绑定这个方法
     */
    this.doPaste = function(element, event){
        var maxLength = element.getAttribute("maxLength");
        maxLength = maxLength || textMaxLength;
        if (maxLength !== "") {
            var text = window.clipboardData.getData("Text");
            var subStr = text.substr(0, maxLength - element.value.length);
            window.clipboardData.setData("Text", subStr);
        }
        this.doOtherThing();
    };
    /**
     * 可复写这个方法,用于客户端程序员实现其它功能
     */
    this.doOtherThing = function(){
        // Client Programer implment this function
    };
}

对JavaScript脚本做如下测试:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <title>MaxLengthCheck </title>
        <script src="MaxLengthCheck.js"></script>
        <script>
            window.onload = function(){

                var checkLength = new MaxLengthCheck();
//重写doOtherThing();
                checkLength.doOtherThing = function(){
                    alert("haha");
                };

//在事件上绑定方法
                var element = document.getElementById("textarea");
                element.onpaste = function(){
                    checkLength.doPaste(element, event);
                };
                element.onkeypress = function(){
                    checkLength.doKeyPress(element, event)
                }
            }
        </script>
    </head>
    <body>
        <textarea id="textarea">
        </textarea>
    </body>
</html>
分享到:
评论

相关推荐

    Vue实现动态显示textarea剩余字数

    Vue实现动态显示textarea剩余文字数量,具体内容如下 这里我们假设允许用户输入的最多数量为200个 html代码如下: &lt;textarea maxlength="200" @input="descInput" v-model="desc" /&gt; &lt;span&gt;{{remnant}}/200...

    jquery.confine:Textarea maxlength,正确完成

    HTML textarea本身不像文本输入一样实现maxlength属性。 jQuery.confine是一个简单的jQuery插件,可以正确地实现此功能,避免了大多数天真的实现会遇到的许多问题,同时还可以选择利用jQuery 1.4中的新HTML5标准和...

    用于Textarea的MaxLength验证的插件

    一个用于执行textarea的maxlength验证的插件

    用JavaScript限制textarea输入长度 (For: IE、Firefox …)[

    Code:用JavaScript限制textarea输入长度 (For: IE、Firefox …) body {font-size:14px;} maxlength=10 maxlength=20 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

    javascript textarea字数限制

    这一个是读取textarea的maxlength属性的值,进行计算,思路很好,但修改起来就麻烦啊,不过对于js爱好者来说是个不错的参考,通过读取属性值进行控制。 textarea字数限制 练习代码多有参考网络 by ahuinan ...

    jquery-textcounter:计算 textarea 中键入的字符数,并显示在达到最大允许字符数之前还剩多少个字符

    jquery-textcounter 计算 textarea 中键入的字符数,并显示在达到最大允许字符数之前还剩多少个字符。... textarea maxlength =" 255 " placeholder ="" id =" comment " &gt; &lt;/ textarea &gt;

    freeChars:可用的字符计数器和maxlength属性polyfill用于的

    也可以用作“最大长度”(maxlength)属性的polyfill。用法包括脚本: &lt;!-- jQuery (1.9 or newer). --&gt;&lt; script type =" text/javascript " src =" //code.jquery.com/jquery-2.1.1.min.js " &gt; &lt;/ ...

    通用JS表单验证

    或,&lt;textarea maxlength="2000" lengthInfo="最大长度不能超过2000!"&gt; 3、一般验证方式(不对空值做验证):  如:^(19|20)[0-9]{2}$" errorInfo="不正确的年份!" &gt; 4、标准验证(不与其它验证方式同时使用): ...

    JavaScript文本框脚本编写的注意事项

    maxlength特性则是用于指定文本框内可以接受的最大字符数。 textarea的初始值则必须放在开始和结束标签之内。 cols是文本框字符行数; rows是文本框字符列数; 另外,不能在HTML中给textarea指定最大字符数...

    浮点vfdsfJAVA实现链表,双向链表.txtJAVA实现链表,双向链表.txt

    &lt;td&gt;&lt;textarea name="txt_desc" id="txt_desc" cols="" rows=""&gt;&lt;/textarea&gt; &lt;th&gt;&nbsp; 描述&gt;=20个字符,不支持HTML标签。 详细的资源描述有机会获得我们的推荐,更有利于...

    一个简单的网页设计

    &lt;div class="onelinetwo"&gt;&lt;textarea id="desc" class="textarea" rows="5" cols="80"&gt;&lt;/textarea&gt; &lt;div class="clear"&gt;&lt;/div&gt; (仅支持纯文本,最多300字) &lt;/tr&gt; ...

    jquery.chineselengthlimit:这是一个可以限制文字框(input[type='text']) 与文字输入区域(textarea) 输入中英文字数的jQuery Plugin

    这是一个可以限制文字框(input[type='text'])与文字输入区域(textarea)输入中英文字数的jQuery Plugin。 Options 下面是可以调整的参数: Options Description limitCount 最大长度限制。预设值为10 。若目标...

    a2x-text-counter:jQuery文本计数器插件

    如果您的textarea具有maxlength属性,则该插件将充当倒数计数器。 在其他地方,它计算输入符号的数量。 正在安装 您可以通过执行bower install a2x-text-counter来通过bower安装它。 用法 &lt; html &gt; &lt; ...

    正则表达式

    JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. 在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp...

    java 正则表达式

    应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下: String.prototype.trim = function(){return this.replace(/(^\s*)|(\s*$)/g, "");} 利用正则表达式分解和转换IP地址: ...

    simple-lorem-ipsum:Simple lorem ipsum - 面向 Web 开发人员的 Firefox Webextension

    简单的Lorem Ipsum 此扩展将一个简单的 Lorem Ipsum 文本插入到表单字段和可编辑的内容元素中。 此外,它还提供了一种编辑模式来自定义...变更日志版本 1.3.0: [改进]尊重 maxLength 属性版本 1.2.0: [改进]更好地支

    ASP.NET程序中常用的三十三种代码.txt

    &lt;script language="javascript" for="document" event="onkeydown"&gt;  if (event.keyCode==13 && event.srcElement.type!=’button’ && event.srcElement.type! =’submit’ && event.srcElement.type!=’reset’ &...

    ASP.NET常用代码

    &lt;script language="javascript" for="document" event="onkeydown"&gt; if(event.keyCode==13 && event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event....

    html入门到放弃笔记

    1、特殊文本的实现 页面的空格以及一些特殊字符需要通过转义字符的方式体现 1、&nbsp; 表示一个空格 2、&lt; 表示 &lt; 3、&gt; 表示 &gt; 4、&copy; 表示© Demo : 1、创建一个页面 02-text.html 2、在页面...

Global site tag (gtag.js) - Google Analytics