日期:2014-05-18  浏览次数:20765 次

如果让input text 控件能够自动适应宽度但又要限制最大宽度?
text控件的长度随着我输入字符而自动变长.   但我又不想它无限变长,我要限制它最大长度为200,超过后则不会再自动变长.   注意我限制的是控件的长度,并不是字符的数量,用户可以无限输入字符.

------解决方案--------------------
关键是对中文的判断:

<script>
/*****************************************************************************
* 为字符串类型增加中文长度的属性
* 例如: alert( "hey~马可菠萝·诺顿. ".gbkLength());
* 使用注意:
* last update by applebomb 050323
*****************************************************************************/
String.prototype.gbkLength = function()
{
var result = 0;
for(var i = 0; i < this.length; i ++)
if(this.charAt(i).charCodeAt(this.charAt(i)) > 127)
result += 2;
else
result += 1;
return result;
}

</script>

<input size=4 onkeydown= 'if(this.value.gbkLength()> this.size)this.size=this.value.gbkLength()+2 '>

注意页面的编码应设置为gbk
------解决方案--------------------
哦!!!终于知道楼主的需求原来是在UTF-8下了。
GBK的判断我有,UTF-8的中文判断没

onkeydown没效那用定时器来检测当前焦点对象好了。超过则截取一下。