各位帮一下,崩溃了都
js的限制字数325个,可是这个一会起作用,到325就不能输入了,有时候已经提示字数过多还是能在输入,为什么????
function key(){
var len=325;
var content=document.getElementById("gaobai").value;
var sum=0;
for(var i = 0;i<content.length;i++){
if((content.charCodeAt(i)>=0)&&(content.charCodeAt(i)<=255)){
sum=sum+1;
}else{
sum=sum+2;
}
}
if(sum>325){
document.getElementById("keyMsg").value="字数过多了!";
var str=content.substr(0,325);
document.getElementById("gaobai").value=str;
}
else
{
len=325-sum;
document.getElementById("keyMsg").value="您还可输入"+len+"个字";
}
}
------解决方案-------------------- 输入过多之后直接修改输入框的属性readonly="readonly" 。
------解决方案-------------------- READONLY:readOnly 设置或获取表明对象内容是否为只读的值
------解决方案-------------------- 输入超过限制后,你需要做一些处理,readonly或者把超过的部分截取掉,或者把整个字符串清空等等
------解决方案-------------------- var str=content.substr(0,325);
你的这句话有问题,上面计算的时候中文的长度算成2,但是你截取字符串的时候中文的长度也要算成2才行的。
325应该换成一个变量,这个变量的值就是你在上边顺换时记录啥时候长度超过325的那个i值。
修改输入框的readonly肯定不行的啊,人家输入超过了还要删除呢
------解决方案-------------------- 引用: var str=content.substr(0,325);
你的这句话有问题,上面计算的时候中文的长度算成2,但是你截取字符串的时候中文的长度也要算成2才行的。
325应该换成一个变量,这个变量的值就是你在上边顺换时记录啥时候长度超过325的那个i值。
修改输入框的readonly肯定不行的啊,人家输入超过了还要删除呢
+1 得考虑中文长度。