用js限制用户输入字节个数

添加人:iyond七级(4377分)   添加时间:2007-06-14    阅读次数:2204  收藏此教程
页面上有一个textarea(注意是多行的),现在需要用Js实现下面的功能.

1.只能输入一定字节的字符,比如允许的最大长度是10,那么只能输入10个字母或者5个 汉字(双字节的字符).
2.而且允许用户用退格键,delete键以及其他的非字符键.
3.必须同时支持ie和firefox,太低的版本可以不考虑. 
4.用户粘贴的时候也必须保证不会超过允许的最大长度,不能单单考虑用键盘输入.
5.以上功能是基于字节的,不是字符.
-----------------------------------------------------------------
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>New Document </title>

    <script language="JavaScript">
    <!--
    function CutStrLength(str,Ilength)
    {
        var tmp=0;
        var len=0;
        var okLen=0
        for(var i=0;i<Ilength;i++)
        {
            if(str.charCodeAt(i)>255)
                tmp+=2
            else
                len+=1
            okLen+=1
            if(tmp+len==Ilength)
            {
                return (str.substring(0,okLen));
                break;
            }
            if(tmp+len>Ilength)
            {
                return (str.substring(0,okLen-1)+"");
                break;
            }
        }
    }
    function checkFieldLength(fieldName,fieldDesc,fieldLength)
    {
        var str=document.getElementById(fieldName).value;
        var theLen=0;
        var teststr='';
        for(i=0;i<str.length;i++)
        {
            teststr=str.charAt(i);
            if(str.charCodeAt(i)>255)
            theLen=theLen+2;
            else
            theLen=theLen+1;
        }
        document.getElementById('showMsg').innerText=theLen;
        if(theLen>fieldLength)
        {
            document.getElementById('showMsg').innerText=fieldDesc;
            //alert(fieldDesc+" 的字段长度超过规定长度!");
            //document.getElementById(fieldName).focus();
            document.getElementById(fieldName).value=CutStrLength(str,fieldLength);
            return false;
        }
        else
        {
            return true;
        }
    }
    //-->
    </script>

</head>
<body>
    <form method="POST" action="">
        <textarea id="testArea" name="testArea" rows="3" cols="22" onkeyup="checkFieldLength('testArea', '超过允许输入的字符个数', 20);"
            onchange="checkFieldLength('testArea', '超过允许输入的字符个数', 20);"></textarea>
        <div id="testInfo">
            已经输入:<span id="showMsg"></span></div>
    </form>
</body>
</html>

1页 第1上一页1下一页
相关的教程: JavaScript 限制输入字节个数
收藏此教程

当前平均分: -1.8(4 次打分)

-5-4-3-2-1012345
评论主题
您的大名
您的评论
验证码 点击换一个验证码
知识库搜索: