你可以在用户每次输入的时候,都去验证一下是否超出字节。没有其它办法。<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>
<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>
用上面的试了一下,当打开中文输入法进行输入时,根本没有效果
不过还是谢谢啦!再说明一下我需要的效果:
我需要的效果是:即使是打开中文输入法,当输入达到到指定的字节数时,就无法再输入了
</textarea>
<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)">