你可以在用户每次输入的时候,都去验证一下是否超出字节。没有其它办法。<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD><BODY>
<INPUT TYPE="text" NAME="a" onkeydown="return(f(this,10));">
</BODY>
</HTML>
<SCRIPT LANGUAGE="JavaScript">
<!--
function f(source,snumber)
{
if(GetLen(source.value) >= snumber)
{
if(event.keyCode == 8 || event.keyCode == 46)
{
return(true);
}
else
{
return(false);
}
}
else
{
return(true);
}
}//功能:取得字符串的实际长度,汉字取2,半角字母取1,累加而成
//str 要求取的实际长度
function GetLen(str)
{
var len = 0;
for(i=0; i<str.length; i++)
{
if(str.charCodeAt(i)>255)
len += 2 ;
else
len++ ;
}
return len;
}
//-->
</SCRIPT>

解决方案 »

  1.   

    to hchxxzx(net学习中) :
    用上面的试了一下,当打开中文输入法进行输入时,根本没有效果
    不过还是谢谢啦!再说明一下我需要的效果:
    我需要的效果是:即使是打开中文输入法,当输入达到到指定的字节数时,就无法再输入了
      

  2.   

    <textarea onpropertychange="if(this.value.length>10){this.value=this.value.slice(0,10)}">
    </textarea>
      

  3.   


    <SCRIPT LANGUAGE="JavaScript">
    function limitTxtByte(o, len)
    {
    var str = o.value;
    var rscn = /^[\u4E00-\u9FA5]$/i;
    var ach;
    var rsstr = '';
    var count = 0;
    for (var i=0; i<str.length; i++)
    {
    ach = str.substr(i, 1);
    if (rscn.test(ach))
    {
    if (count+2 <= len)
    {
    count += 2;
    }else
    {
    break;
    }
    }else
    {
    if (count+1 <= len)
    {
    count += 1;
    }else
    {
    break;
    }
    }
    rsstr += ach;
    } if (rsstr != str)
    {
    o.value = rsstr;
    }
    }
    </SCRIPT>
    <INPUT TYPE="text" name="txt" onpropertychange="limitTxtByte(this, 4)">