限制textarea文本域中输入字符个数(防粘贴)

来源:互联网 发布:如何优化产品标题 编辑:程序博客网 时间:2024/05/09 08:13
    通常我们需要对用户文本输入进行字符数量上的限制,对于<input type="text" value="" />文本输入域,我们可以通过maxlength属性来限制用户可输入的最大字符数,但是textarea这种文本输入域的话我们只能通过js来控制输入字符数了,因为它没有提供maxlength属性。首先我们定义一个简单的函数,如下:

/**
* 限制textarea文本域输入的字符个数
* @id        textarea表单ID
* @count 要限制的最大字符数
*/

function limitChars(id, count)
{
    
var obj = document.getElementById(id);
    
    
if (obj.value.length > count)
    
{
        obj.value 
= obj.value.substr(0, count);
    }

}

说明:这个函数的作用就是当textarea文本域中的字符数超过指定个数时即进行截取。有了这个函数,我们接下来要做的就是选择在何时调用该函数:

<textarea id="mytext" cols="" rows="" onkeydown="limitChars('mytext', 120)" onchange="limitChars('mytext', 120)" onpropertychange="limitChars('mytext', 120)"></textarea>

说明:1、onkeydown监控用户键盘输入并进行字符截取;2、onchange防止用户通过复制粘贴功能输入超过指定最大字符数的字符;3、onpropertychange针对IE(FF中无效),作用就是当用户通过复制粘贴功能来进行输入时,当粘贴完成的瞬间即进行字符截取,而不是像onchange那样需要等到焦点离开textarea控件时才进行字符截取(该属性主要为了用户体验上的效果,没有该属性已经可以真正完成限制字符输入个数的任务)。
原创粉丝点击