`
ianylb
  • 浏览: 74398 次
  • 性别: 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属性来限制字数的解决方法

    然而,HTML标准中并没有提供`maxlength`属性来限制`&lt;textarea&gt;`的字符数,因此必须采用其他方法来实现这一需求。 一种常见的限制字符数的方法是使用JavaScript(或其他脚本语言)。基本思路是通过监听`&lt;textarea&gt;`...

    JQuery为textarea添加maxlength属性的代码

    为了实现类似的功能,可以通过JavaScript或jQuery来动态限制`textarea`中的字符数量。 ### jQuery实现textarea的maxlength功能 jQuery是一个快速、小巧且功能丰富的JavaScript库。它通过封装DOM操作、事件处理、...

    使用JavaScript限制TextArea多行文本域的可输入字数

    本文将深入探讨如何使用JavaScript来实现对`&lt;textarea&gt;`的字数限制。 首先,我们需要了解JavaScript的基本语法和DOM操作。JavaScript是一种解释型、弱类型的脚本语言,广泛应用于网页和浏览器交互。通过DOM...

    textarea长度控制

    本文将详细介绍如何通过HTML属性及JavaScript脚本实现对`textarea`的最大输入长度控制,并探讨不同场景下的实现方法。 #### 二、HTML属性实现 在HTML中,可以通过`maxlength`属性直接为`textarea`元素设定最大输入...

    详解maxlength属性在textarea里奇怪的表现

    为了规避这个问题,可以使用JavaScript来动态监控`textarea`的`oninput`事件,而不是依赖`maxlength`属性。`oninput`事件可以在用户输入或者粘贴文本后立即触发,因此更适合用于实时检查和控制输入内容。下面是一个...

    angularjs实现textarea文本输入字数限制功能

    在本文中,我们将深入探讨如何使用AngularJS框架来实现一个textarea文本输入的字数限制功能。AngularJS,作为一款强大的前端开发框架,以其双向数据绑定和丰富的指令系统著称,可以方便地帮助开发者构建功能丰富的...

    textarea输入限制方法

    本文将详细介绍如何通过JavaScript实现`textarea`的输入长度限制,包括如何设置最大输入长度、如何阻止超出长度的输入、如何限制复制粘贴及鼠标拖放等操作。 #### 一、基础知识介绍 1. **`textarea`标签**:HTML中...

    控制textarea文本长度,并限制输入字数(带统计显示)

    本文将深入探讨如何实现对`textarea`文本长度的控制,并实时显示输入字数的统计。 首先,我们可以使用JavaScript来实现这一功能。JavaScript是一种广泛使用的客户端脚本语言,可以在用户与网页交互时执行,提供动态...

    textarea.7z

    压缩包中的`textarea_maxlength`可能是一个示例文件,包含实现以上功能的完整HTML、CSS和JavaScript代码,或者是对这个功能的一种实现方式的详细说明。通过查看和学习这个文件,你可以更深入地理解如何在实际项目中...

    JQuery为textarea添加maxlength属性并且兼容IE

    `JQuery`库提供了一种解决方案,使得我们可以通过JavaScript来实现`textarea`的`maxlength`功能,并且能兼容包括IE在内的多种浏览器。 首先,我们需要理解`maxlength`属性的作用。`maxlength`是HTML5引入的一个特性...

    textarea去除多余空格和回车的方法及其属性

    本文将详细介绍如何实现这一目标以及`&lt;textarea&gt;`的相关属性。 1. 错误解决方法: 在编写HTML时,`&lt;textarea&gt;`标签的闭合方式对内容的处理至关重要。错误的做法是将`&lt;/textarea&gt;`放在新的一行,这会导致换行符和...

    TextArea不支持maxlength的解决办法(jquery)

    为了解决这个问题,一些浏览器(如Firefox)自行实现了对textarea元素的maxlength属性的支持,但是出于标准兼容性考虑,并不是所有浏览器都支持这一非标准特性,比如IE浏览器。 为了解决跨浏览器的兼容性问题,可以...

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

    为了解决这个问题,我们可以利用JavaScript来实现一个兼容各个主流浏览器的textarea输入长度限制功能。 首先,让我们理解HTML5的`maxlength`属性。`maxlength`属性是HTML5新增的,它定义了textarea或input元素最多...

    用于Textarea的MaxLength验证的插件

    在没有此类插件的情况下,开发者通常需要手动编写JavaScript代码来监听textarea的`keyup`、`keydown`或`input`事件,并计算当前文本的长度,一旦超过预设的maxLength,就阻止进一步的输入或显示错误提示。...

Global site tag (gtag.js) - Google Analytics