`

JAVASCRIPT应用篇(5)--设置TEXTAREA的MAXLENGTH属性

阅读更多

标准的DHTML文档中TEXTAREA的MAXLENGTH属性默认情况下不起作用,只有当事件发生时才起作用

如下:http://spiderscript.net/site/spiderscript/examples/ex_textarea_maxlength.asp

但TEXT中有且起作用<input type="text" maxlength="20">,

那么在TEXTAREA中怎么实现输入内容不能超过多少个字符呢。

方法1、如果只需要截取多少个字符的内容,则可以:

<textarea onkeyup="this.value = this.value.slice(0, 80)"></textarea>

<textarea onkeyup="this.value = this.value.substring(0, 80)"></textarea>

方法2、

<script type="text/javascript">
function ismaxlength(obj){
var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
if (obj.getAttribute && obj.value.length>mlength)
obj.value=obj.value.substring(0,mlength)
}
</script>

<textarea maxlength="40" onkeyup="return ismaxlength(this)" ></textarea>

这个方法采用截断法,输入到最后一个字符的时候如果再输入则会显示光标闪烁。但可以解决使用CTRL+C复制过来的长度限制问题,但如果用鼠标复制过来的不还是不行。

方法3、这个方法直接判断输入的长度

<script language="javascript" type="text/javascript">

<!--

function imposeMaxLength(Object, MaxLen)

{

return (Object.value.length <MaxLen);

}

-->

</script>

<textarea name="myName" onkeypress="return imposeMaxLength(this, 15);" ></textarea>

当输入内容大于15时因为返回为false所以这个实现不会显示光标闪烁的问题,但没有解决复制过来的长度限制问题即复制过来的内容可以超过最大长度限制

注意这个帖子里使用的情况如:http://psacake.com/web/js.asp

return (Object.value.length <=MaxLen);但我测试发现当输入字节数=maxlen时还可以输入一个字符,所以我改成 return (Object.value.length <MaxLen);

方法4、其实方法4是方法2与方法3的基础上进一步优化。客观的说方法2与方法3都只做了一部分工作

看下面链接:http://www.codingforums.com/showthread.php?t=2224




上面的方法在原来的基础上加了onblur事件,这主要用于处理当用户不是采用输入而是通过复制粘贴方法来完成文本的转入时的问题。
实际就是方法2与方法3的结合版。 以下是我为TextArea增加并利用maxlength属性及结合上例的结果:
<html>
<head>
<script type="text/javascript">
function ismaxlength(obj){
	var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
	if (obj.getAttribute && obj.value.length>mlength)
		alert('该文本框允许输入最大长度为'+mlength+"个字符,超出内容将会被截断")
		obj.value=obj.value.substring(0,mlength)
	}
function imposeMaxLength(obj)
{
  var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
  return (obj.value.length <mlength);
}
</script>
</head>
<body>
<form name="myform">
   <textarea maxlength="5" onkeypress="return imposeMaxLength(this)" onblur="ismaxlength(this)"></textarea>
</form>
</body>
</html>
以上方法解决IE中textarea不支持最大长度的问题,最新的firefox是支持的,所以该方法使用上需要加上浏览器类型的判断
http://www.cnblogs.com/leadzen/archive/2008/09/06/1285764.html


对于些问题的其它主要解决方法可见下面链接:
利用JQUERY框架实现:http://viralpatel.net/blogs/2008/12/set-maxlength-of-textarea-input-using-jquery-javascript.html

http://www.codingforums.com/showthread.php?t=2224

http://www.insidedhtml.com/ie5/htc/ts08/page2.asp

http://inmyexperience.com/archives/000327.shtml

http://blog.offbeatmammal.com/post/2006/10/26/MaxLength-on-a-Textarea.aspx



分享到:
评论

相关推荐

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

    textarea maxlength="200" @input="descInput" v-model="desc" /&gt; &lt;span&gt;{{remnant}}/200 javascript代码如下: data(){ return{ remnant: 200 } } methods:{ descInput(){ var txtVal = this.desc.length...

    JavaScript实现textarea的maxlength

    接下来,我们可以用JavaScript获取这个`textarea`元素,并设置或获取`maxlength`属性。例如: ```javascript var myTextarea = document.getElementById('myTextarea'); myTextarea.maxLength = 100; // 设置最大...

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

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

    JQuery为textarea添加maxlength属性的代码

    然而,`textarea`元素本身并不支持`maxlength`属性,这个属性通常用于单行输入元素`input`,用以限制用户输入的最大字符数。为了实现类似的功能,可以通过JavaScript或jQuery来动态限制`textarea`中的字符数量。 ##...

    textarea长度控制

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

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

    首先,`maxlength`属性的基本用法是在`&lt;textarea&gt;`标签中设置,例如`&lt;textarea maxlength="600"&gt;`,这会限制用户输入的字符数不超过600个。通常情况下,当用户输入达到设定的限制时,额外的字符将不会被显示。此外,...

    jquery.confine:Textarea maxlength,正确完成

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

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

    在上述代码中,我们为`textarea`添加了一个`maxlength`属性,设置最大输入字数为100。然后,通过JavaScript获取`textarea`和显示字数统计的`span`元素,添加事件监听器`'input'`。当`textarea`内容改变时,更新字数...

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

    `jQuery` 是一个广泛使用的JavaScript库,它提供了丰富的API来简化DOM操作,如事件处理和兼容性处理,因此我们可以借助 `jQuery` 来实现 `textarea` 的 `maxlength` 功能。 首先,我们需要理解 `keyup` 事件。`...

    textarea长度限制

    工具方面,开发人员可以使用各种代码编辑器插件或框架提供的组件,如 Vue.js 的 `v-model.lazy` 配合 `maxlength` 特性,或者 React 中的 `maxLength` 属性,它们都可以帮助更优雅地实现 `textarea` 的长度控制。...

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

    &lt;textarea id="myTextarea" rows="5" cols="30" maxlength="100" required wrap="hard"&gt;&lt;/textarea&gt; ``` 在JavaScript中,可以使用`trim()`、`replace()`等方法来去除`textarea`中的多余空格和回车。例如,以下代码...

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

    这样,该textarea就可以限制用户输入的最大字符长度,即使浏览器不支持HTML5标准中的maxlength属性。 该插件的核心功能包括: 1. 监听文本输入时的键盘按键事件(keydown和keypress),实时检查输入文本的长度,并...

    TextArea用法

    以下是一个具体的例子,展示了如何使用JavaScript限制`TextArea`中的字符数和行数: ```html &lt;textarea name="myText" id="myText" cols="44" rows="4" wrap="virtual" style="font-family: arial; font-size: 14...

    用于Textarea的MaxLength验证的插件

    接着,你可以通过调用jQuery的选择器找到需要应用验证的textarea元素,然后调用插件方法,设置相应的maxLength属性。例如: ```javascript $(document).ready(function() { $('#yourTextareaID').maxLength({...

    textarea输入限制方法

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

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

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

    js限制textarea每行输入字符串长度的代码.docx

    在HTML中,`textarea`控件不像`input[type="text"]`那样可以直接通过`maxlength`属性设置最大输入长度。因此,我们需要使用JavaScript来实现这一功能,尤其是当我们要限制每行的字符数时。 以下是一个JavaScript...

Global site tag (gtag.js) - Google Analytics