怎样限定文本框输入字符数? <input name="textfield" type="text" maxlength="22" />设置文本框的maxlength="22" 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function isTooLong(controlName,Message,maxlength){ var con = document.getElementById(controlName); var str = con.value; str = escape(str); for (i = 0,len=0; i < str.length; i++, len++) { if (str.charAt(i) == "%") { if (str.charAt(++i) == "u") { i += 3; len++; } i++; } } if(len > maxlength){ alert(Message); con.focus(); return true } return false}这个比较好,上面的虽然可以但是判断不了汉字双字节的。 lz想要的效果:我的bloghttp://blog.xiaobing.org/article.asp?id=15 先等楼主看看1楼的方法是不是适用,再说其它东西也不迟,尽量标签属性、CSS能控制的,就不要用JS了。 maxlength="XX"这样就行了.汉字也算一个字符 <script language="javascript"> var LastCount=0; function CountStrByte(Message,Used) { var ByteCount=0; var StrValue=Message.value; var StrLength=Message.value.length; var MaxValue=100; if(LastCount!=StrLength) { for(i=0;i <StrLength;i++) { ByteCount=ByteCount+1; if(ByteCount>MaxValue) { Message.value=StrValue.substring(0,i); ByteCount=MaxValue; break; } } Used.innerHTML=ByteCount; }elseUsed.innerHTML=ByteCount;} </script> <body><br> <br> <textarea name="a" onKeyDown="CountStrByte(a,b);" onkeyup ="CountStrByte(this,document.getElementById('b'));"></textarea> 已输入 <span id=b>0</span>个字(最多可以输入100个字符!) 如果考虑POST表单到数据库,而数据表字段的长度已经设定了,更精确的做法还是要考虑双字节字符的(不仅仅是汉字范围)<html> <head> <title>Javascript判断字符串长度</title></head> <body> <script type="text/javascript">function getlengthB(str){ return str.replace(/[^\x00-\xff]/g,"**").length;}</script><input type="text" maxlength="10" value="" onblur="alert(getlengthB(this.value))" /><body> </html> limitlength.jsfunction limitLength(value, byteLength, title, attribute) {//限制输入框字数 var newvalue = value.replace(/[^\x00-\xff]/g, "**"); var length = newvalue.length; //当填写的字节数小于设置的字节数 if (length * 1 <=byteLength * 1){ return; } var limitDate = newvalue.substr(0, byteLength); var count = 0; var limitvalue = ""; for (var i = 0; i < limitDate.length; i++) { var flat = limitDate.substr(i, 1); if (flat == "*") { count++; } } var size = 0; var istar = newvalue.substr(byteLength * 1 - 1, 1);//校验点是否为“×” //if 基点是×; 判断在基点内有×为偶数还是奇数 if (count % 2 == 0) { //当为偶数时 size = count / 2 + (byteLength * 1 - count); limitvalue = value.substr(0, size); } else { //当为奇数时 size = (count - 1) / 2 + (byteLength * 1 - count); limitvalue = value.substr(0, size); } alert(title + "最大输入" + byteLength + "个字节(相当于"+byteLength /2+"个汉字)!"); document.getElementById(attribute).value = limitvalue; return; } <script type="text/javascript" src="limitlength.js"></script><input type="text" name="uid" id="uid" onkeyup="limitLength(value,10,'语义说明:','uid'); " /> 限定文本框输入字符数,最简单的就是:设置文本框的maxlength的值.在我们写代码的时候,同样的效果,代码要越简单越好. <input name="textfield" type="text" maxlength="12"> 15楼的代码我收藏了。http://www.java2000.net/p7959 <input name="textfield" type="text" maxlength="22" /> 如何获取不同table的ID值。。。在线等,在线结贴啊 请问怎么实现在textarea光标处插入表情? 视频播放 能删除div标签里面的其中一个子标签吗? 关于子窗体检测父窗体问题 急!急!!急!!!我使用window.open打开一个项目的窗口,在新的窗口中取不到window.opener...... 请教这段代码如何用???? js对象操作性能问题 js中如何调用asp??急 是不是遇到了javascript的……求救斑竹! js更改连接的问题!高手帮忙!!!急救!!! html中的js如DelKeyword('32016407','18732233');,他的数字是随机的吗?
{
var con = document.getElementById(controlName);
var str = con.value;
str = escape(str);
for (i = 0,len=0; i < str.length; i++, len++) {
if (str.charAt(i) == "%") {
if (str.charAt(++i) == "u") {
i += 3;
len++;
}
i++;
}
}
if(len > maxlength){
alert(Message);
con.focus();
return true
}
return false
}
这个比较好,上面的虽然可以但是判断不了汉字双字节的。
这样就行了.汉字也算一个字符
var LastCount=0;
function CountStrByte(Message,Used)
{
var ByteCount=0;
var StrValue=Message.value;
var StrLength=Message.value.length;
var MaxValue=100;
if(LastCount!=StrLength)
{
for(i=0;i <StrLength;i++)
{
ByteCount=ByteCount+1;
if(ByteCount>MaxValue)
{
Message.value=StrValue.substring(0,i);
ByteCount=MaxValue;
break;
}
}
Used.innerHTML=ByteCount;
}
else
Used.innerHTML=ByteCount;
}
</script> <body>
<br>
<br>
<textarea name="a" onKeyDown="CountStrByte(a,b);" onkeyup ="CountStrByte(this,document.getElementById('b'));"></textarea>
已输入 <span id=b>0</span>个字(最多可以输入100个字符!)
<head>
<title>Javascript判断字符串长度</title>
</head>
<body>
<script type="text/javascript">
function getlengthB(str)
{
return str.replace(/[^\x00-\xff]/g,"**").length;
}
</script>
<input type="text" maxlength="10" value="" onblur="alert(getlengthB(this.value))" />
<body>
</html>
var newvalue = value.replace(/[^\x00-\xff]/g, "**");
var length = newvalue.length;
//当填写的字节数小于设置的字节数
if (length * 1 <=byteLength * 1){
return;
}
var limitDate = newvalue.substr(0, byteLength);
var count = 0;
var limitvalue = "";
for (var i = 0; i < limitDate.length; i++) {
var flat = limitDate.substr(i, 1);
if (flat == "*") {
count++;
}
}
var size = 0;
var istar = newvalue.substr(byteLength * 1 - 1, 1);//校验点是否为“×”
//if 基点是×; 判断在基点内有×为偶数还是奇数
if (count % 2 == 0) {
//当为偶数时
size = count / 2 + (byteLength * 1 - count);
limitvalue = value.substr(0, size);
} else {
//当为奇数时
size = (count - 1) / 2 + (byteLength * 1 - count);
limitvalue = value.substr(0, size);
}
alert(title + "最大输入" + byteLength + "个字节(相当于"+byteLength /2+"个汉字)!");
document.getElementById(attribute).value = limitvalue;
return;
} <script type="text/javascript" src="limitlength.js"></script>
<input type="text" name="uid" id="uid" onkeyup="limitLength(value,10,'语义说明:','uid'); " />