`
bsb654321
  • 浏览: 13167 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

textarea实现 maxlength

阅读更多
textarea没有maxlength属性,下面函数是实现类似text输入框maxlength属性的效果
IE使用onpropertychange事件,其他浏览器添加事件监听 addEventListener
<html>
<head>
<script type="text/javascript">	
	   var oldValue=new Array();
	   function checkMaxLen(){
		   var cm_content = document.getElementById("cm_content");
		   var report_content = document.getElementById("report_content");
		   var cm_maxlength = 30;
		   var report_maxlength=20;
		   var cm_num = 0;
		   var report_num=1;
		   
		   var cm_length = calculate_byte(cm_content.value);
		    var report_length = calculate_byte(report_content.value);
		    if(cm_length>cm_maxlength){
		     //alert("评价内容最多输入" + cm_maxlength + "个汉字、字母或数字!");
		     cm_content.value=oldValue[cm_num];
		    }
		    else{
		     oldValue[cm_num]=cm_content.value;
		    }
			if(report_length>report_maxlength){
		     //alert("举报内容最多输入" + report_maxlength + "个汉字、字母或数字!");
		     report_content.value=oldValue[report_num];
		    }
		    else{
		     oldValue[report_num]=report_content.value;
		    }
	   }
		function calculate_byte( sTargetStr ) {//计算字符串的字数
		        var sTmpStr, sTmpChar;
		        var nOriginLen = 0;
		        sTmpStr = new String(sTargetStr);
		        nOriginLen = sTmpStr.length;//字符串的字数
		        return nOriginLen; 
		        
		}

       /*
	   function calculate_byte( sTargetStr ) {//检查字符串的长度,中文占2个字符,数字特殊符号占一个字符
        var sTmpStr, sTmpChar;
        var nOriginLen = 0;
        var nStrLength = 0;
         
        sTmpStr = new String(sTargetStr);
        nOriginLen = sTmpStr.length;//字符串的字数

        for ( var i=0 ; i < nOriginLen ; i++ ) {
                sTmpChar = sTmpStr.charAt(i);
                if (escape(sTmpChar).length > 4) {//如果转码后的长度大于4,既是中文或韩文日文类的多字符语言
                        nStrLength += 2;
                } else if (sTmpChar!='\r') {//不计算换行符,其他特殊符号,数字及英文都占一个字符
                        nStrLength ++;
                }
        }
        
        return nStrLength; //返回计算后的长度,以字符为单位,中文占2字符,英文及符号数字占一字符,用此方法可以获取字符串字符数,判断中文数和英文数
        
   }
	   */

</script>
</head>
<body>
评论内容:<textarea id="cm_content"></textarea></br>
举报内容:<textarea id="report_content"></textarea>
<script type="text/javascript">
//firefox下检测状态改变只能用oninput,且需要用addEventListener来注册事件。 
		if(/msie/i.test(navigator.userAgent))    //ie浏览器 
		{
		   document.getElementById("cm_content").onpropertychange=checkMaxLen;//ie浏览器下 onpropertychange事件指 属性变化监听(即时的),包括脚本改变对象属性值,onchange只是对象失去焦点后 才激活事件(不即时),onpropertychange事件firefox、opera、safari、 chrome都不支持,只有IE支持
		   document.getElementById("report_content").onpropertychange=checkMaxLen; 
		} 
		else 
		{//非ie浏览器,比如Firefox 
		   document.getElementById("cm_content").addEventListener("input",checkMaxLen,false);
		   document.getElementById("report_content").addEventListener("input",checkMaxLen,false);
		}
</script>
</body>
</html>
分享到:
评论

相关推荐

    JavaScript实现textarea的maxlength

    标题"JavaScript实现textarea的maxlength"指出,我们将探讨如何使用JavaScript来动态地实现和管理`textarea`的`maxlength`属性。这可能是为了在用户输入时实时检查字符数,或者在用户超过限制时给出反馈。 首先,...

    IE6-9placeholder、textarea-maxlength的修复;实时用户输入捕捉

    IE6-9 input和textarea元素的placeholder(占位符)属性与textarea元素的maxlength(最大长度限制)属性的修复与所有浏览器的实时输入捕捉,仅需要提供一个元素或者元素id与实时捕捉回调函数(可选)。甚至实现了各...

    JQuery为textarea添加maxlength属性的代码

    ### jQuery实现textarea的maxlength功能 jQuery是一个快速、小巧且功能丰富的JavaScript库。它通过封装DOM操作、事件处理、动画以及Ajax等功能,简化了JavaScript编程。 在本例中,我们使用jQuery的`keyup`事件...

    textarea不能通过maxlength属性来限制字数的解决方法

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

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

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

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

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

    用于Textarea的MaxLength验证的插件

    "用于Textarea的MaxLength验证的插件"就是这样一个工具,它专门针对`&lt;textarea&gt;`元素提供了便捷的maxlength验证服务。 这个插件的核心功能在于提供了一个直观且易于集成的方法,用于限制用户在`&lt;textarea&gt;`中输入的...

    textarea长度控制

    需要注意的是,虽然`maxlength`属性对于`textarea`是有效的,但在某些浏览器中可能会出现警告提示“undefined attribute name (maxlength)”,这是因为`maxlength`属性实际上是为`input`元素设计的,并不是`textarea...

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

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

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

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

    jquery.confine:Textarea maxlength,正确完成

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

    textarea.7z

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

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

    然而,当`maxlength`应用于`&lt;textarea&gt;`时,可能会遇到一些意料之外的行为,尤其是在处理大量文本粘贴时。本文将详细探讨这个问题,并提出解决方案。 首先,`maxlength`属性的基本用法是在`&lt;textarea&gt;`标签中设置,...

    微信小程序 内容自适应textarea表单组件(autoheight_textarea)

    textarea根据内容自适应高度 组件 注意:要监听input事件改变value值 使用: &lt;autoheight_textarea value="{{value}}" placeholder="写个评论" bindinput="listenerinput"&gt;&lt;/autoheight_textarea&gt;

    textarea输入限制方法

    2. **`maxlength`属性**:可以为`textarea`添加`maxlength`属性来限制用户输入的最大字符数。 3. **JavaScript事件处理**:通过JavaScript可以监听并处理各种事件,如用户输入时触发的`onkeypress`事件、失去焦点时...

Global site tag (gtag.js) - Google Analytics