控制textarea的字符个数 中文两个字符,其它一个字符。最大100个字符。旁边要有告警字符数。当到101个字符时弹出窗口,此时textarea里只能显示最多100个字符 。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.52hai.com/2005/article.asp?id=2517 看这个适合不 看来LZ知道在哪写事件.... onpropertychange 里写this.value.replace(/[^\x00-\xff]/g, '00').length>100 完整的例子如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title></head><script language="javascript" type="text/javascript">function chk(id){var maxLen=100; //根据需要设定最大的字符数var o=document.getElementById(id);if(o.value.length>maxLen) { alert("字符个数已经超过 : "+maxLen + " 个了"); o.value=o.value.substr(0,maxLen); }}</script><body><textarea name="text01" id="text01" cols="40" rows="10" onKeyUp="javascript:chk('text01');">1234</textarea></body></html> 如果是中文字符 o.value=o.value.substr(0,maxLen); textarea 里的中文不会算成两个字符 <textarea onkeydown="abc(this,100)"></textarea><script>function abc(o,n){var str = o.value;if(str=="")return;var re = /[\u0000-\u00FF]/g;var re2 = /[^\u0000-\u00FF]/g;var length=0;if(str.match(re)&&str.match(re).length){length += str.match(re).length;}else if(str.match(re)!=null){length +=1;}if(str.match(re2)&&str.match(re2).length){length += str.match(re).length*2;}else if(str.match(re2)!=null){length +=1;}if(length==n)alert("too long");return false;}</script>我也玩玩... natineprince 只能弹一次,人家接着输,又没有了。 <textarea onkeydown="return abc(this,100)"></textarea><script>function abc(o,n){var str = o.value;if(str=="")return;if(event.keyCode==8)return;var re = /[\u0000-\u00FF]/g;var re2 = /[^\u0000-\u00FF]/g;var length=0;if(str.match(re)&&str.match(re).length){length += str.match(re).length;}else if(str.match(re)!=null){length +=1;}if(str.match(re2)&&str.match(re2).length){length += str.match(re).length*2;}else if(str.match(re2)!=null){length +=1;}if(length>=n){alert("too long");return false;}return true;}</script>感觉这个做法始终不大好... 测试通过了,完整如下,呵呵。有分不 ....:)<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title></head><script language="javascript" type="text/javascript">function chk(id){var maxLen=100; //根据需要设定最大的字符数var o=document.getElementById(id);var ln=0;var cnln=0;for(var i=0;i<o.value.length;i++) { if(o.value.charCodeAt(i)>128) {cnln+=1;ln+=2;} else ln+=1; if (ln>=maxLen) break; }if(ln>=maxLen) { o.value=o.value.substr(0,maxLen-cnln); alert(ln+"\n字符个数已经超过 : "+maxLen + " 个了"); }}</script><body><textarea name="text01" id="text01" cols="40" rows="10" onKeyUp="javascript:chk('text01');">1234</textarea></body></html> natineprince 的方法有点小意思,不过不能用Delete键删除,一删除就来个 too long ,结束没变化, 哈哈只能用Backspace键。等着更好滴…… 谢谢各路高手。 13楼的shenzhenNBA 改良后,达标。呵呵5分钟后给分。结帐。 如何仿效csdn论坛左边的导航,可以进行拖拉,放大缩小导航的宽度 关于打开网页对话框(window.showModalDialog)的问题 easyui-datagrid的移动问题 JS修改input类型的问题,纠结的我。。。抓头 网页刷新,让它显示下一副图片的问题 [在线等]如何使用javascript判断一个本地文件是否存在? 关于Select控件 简单问题散分 昨晚熬了一夜通宵。做了一个站点。 做了个图片平滑轮播,但是滚动速度越来越快,求解 js验证问题 保存上一次页面的上下滚动条位置,用于本页面的显示
onpropertychange 里写
this.value.replace(/[^\x00-\xff]/g, '00').length>100
完整的例子如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<script language="javascript" type="text/javascript">
function chk(id)
{
var maxLen=100; //根据需要设定最大的字符数
var o=document.getElementById(id);
if(o.value.length>maxLen)
{
alert("字符个数已经超过 : "+maxLen + " 个了");
o.value=o.value.substr(0,maxLen);
}
}
</script>
<body>
<textarea name="text01" id="text01" cols="40" rows="10" onKeyUp="javascript:chk('text01');">1234</textarea>
</body>
</html>
o.value=o.value.substr(0,maxLen);
textarea 里的中文不会算成两个字符
</textarea>
<script>
function abc(o,n){
var str = o.value;
if(str=="")return;
var re = /[\u0000-\u00FF]/g;
var re2 = /[^\u0000-\u00FF]/g;
var length=0;
if(str.match(re)&&str.match(re).length)
{length += str.match(re).length;}
else if(str.match(re)!=null)
{length +=1;}
if(str.match(re2)&&str.match(re2).length)
{length += str.match(re).length*2;}
else if(str.match(re2)!=null)
{length +=1;}
if(length==n)
alert("too long");
return false;
}
</script>
我也玩玩...
</textarea>
<script>
function abc(o,n){
var str = o.value;
if(str=="")return;
if(event.keyCode==8)return;
var re = /[\u0000-\u00FF]/g;
var re2 = /[^\u0000-\u00FF]/g;
var length=0;
if(str.match(re)&&str.match(re).length)
{length += str.match(re).length;}
else if(str.match(re)!=null)
{length +=1;}
if(str.match(re2)&&str.match(re2).length)
{length += str.match(re).length*2;}
else if(str.match(re2)!=null)
{length +=1;}
if(length>=n){
alert("too long");
return false;}
return true;
}
</script>
感觉这个做法始终不大好...
测试通过了,完整如下,呵呵。有分不 ....:)<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<script language="javascript" type="text/javascript">
function chk(id)
{
var maxLen=100; //根据需要设定最大的字符数
var o=document.getElementById(id);
var ln=0;
var cnln=0;
for(var i=0;i<o.value.length;i++)
{
if(o.value.charCodeAt(i)>128)
{cnln+=1;ln+=2;}
else
ln+=1;
if (ln>=maxLen) break;
}
if(ln>=maxLen)
{
o.value=o.value.substr(0,maxLen-cnln);
alert(ln+"\n字符个数已经超过 : "+maxLen + " 个了");
}
}
</script>
<body>
<textarea name="text01" id="text01" cols="40" rows="10" onKeyUp="javascript:chk('text01');">1234</textarea>
</body>
</html>
不过不能用Delete键删除,一删除就来个 too long ,结束没变化, 哈哈
只能用Backspace键。等着更好滴…… 谢谢各路高手。
13楼的shenzhenNBA 改良后,达标。呵呵5分钟后给分。结帐。