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`属性。这可能是为了在用户输入时实时检查字符数,或者在用户超过限制时给出反馈。 首先,...
IE6-9 input和textarea元素的placeholder(占位符)属性与textarea元素的maxlength(最大长度限制)属性的修复与所有浏览器的实时输入捕捉,仅需要提供一个元素或者元素id与实时捕捉回调函数(可选)。甚至实现了各...
### jQuery实现textarea的maxlength功能 jQuery是一个快速、小巧且功能丰富的JavaScript库。它通过封装DOM操作、事件处理、动画以及Ajax等功能,简化了JavaScript编程。 在本例中,我们使用jQuery的`keyup`事件...
然而,HTML标准中并没有提供`maxlength`属性来限制`<textarea>`的字符数,因此必须采用其他方法来实现这一需求。 一种常见的限制字符数的方法是使用JavaScript(或其他脚本语言)。基本思路是通过监听`<textarea>`...
Vue实现动态显示textarea剩余文字数量,具体内容如下 这里我们假设允许用户输入的最多数量为200个 html代码如下: <textarea maxlength="200" @input="descInput" v-model="desc" /> <span>{{remnant}}/200...
`JQuery`库提供了一种解决方案,使得我们可以通过JavaScript来实现`textarea`的`maxlength`功能,并且能兼容包括IE在内的多种浏览器。 首先,我们需要理解`maxlength`属性的作用。`maxlength`是HTML5引入的一个特性...
"用于Textarea的MaxLength验证的插件"就是这样一个工具,它专门针对`<textarea>`元素提供了便捷的maxlength验证服务。 这个插件的核心功能在于提供了一个直观且易于集成的方法,用于限制用户在`<textarea>`中输入的...
需要注意的是,虽然`maxlength`属性对于`textarea`是有效的,但在某些浏览器中可能会出现警告提示“undefined attribute name (maxlength)”,这是因为`maxlength`属性实际上是为`input`元素设计的,并不是`textarea...
本文将深入探讨如何实现对`textarea`文本长度的控制,并实时显示输入字数的统计。 首先,我们可以使用JavaScript来实现这一功能。JavaScript是一种广泛使用的客户端脚本语言,可以在用户与网页交互时执行,提供动态...
为了解决这个问题,一些浏览器(如Firefox)自行实现了对textarea元素的maxlength属性的支持,但是出于标准兼容性考虑,并不是所有浏览器都支持这一非标准特性,比如IE浏览器。 为了解决跨浏览器的兼容性问题,可以...
HTML textarea本身不像文本输入一样实现maxlength属性。 jQuery.confine是一个简单的jQuery插件,可以正确地实现此功能,避免了大多数天真的实现会遇到的许多问题,同时还可以选择利用jQuery 1.4中的新HTML5标准和...
压缩包中的`textarea_maxlength`可能是一个示例文件,包含实现以上功能的完整HTML、CSS和JavaScript代码,或者是对这个功能的一种实现方式的详细说明。通过查看和学习这个文件,你可以更深入地理解如何在实际项目中...
然而,当`maxlength`应用于`<textarea>`时,可能会遇到一些意料之外的行为,尤其是在处理大量文本粘贴时。本文将详细探讨这个问题,并提出解决方案。 首先,`maxlength`属性的基本用法是在`<textarea>`标签中设置,...
textarea根据内容自适应高度 组件 注意:要监听input事件改变value值 使用: <autoheight_textarea value="{{value}}" placeholder="写个评论" bindinput="listenerinput"></autoheight_textarea>
2. **`maxlength`属性**:可以为`textarea`添加`maxlength`属性来限制用户输入的最大字符数。 3. **JavaScript事件处理**:通过JavaScript可以监听并处理各种事件,如用户输入时触发的`onkeypress`事件、失去焦点时...