Posted in Javascript onDecember 19, 2012
功能/特点:
1.实时显示可输入的字数(字节数)
2.两种限制方式(长度、字节数)
3.中文输入法下可正常使用,无BUG
4.同一页面可以使用多个,相互不干扰
limit.js
function limit(){ var txtNote;//文本框 var txtLimit;//提示字数的input var limitCount;//限制的字数 var isbyte;//是否使用字节长度限制(1汉字=2字符) var txtlength;//到达限制时,字符串的长度 var txtByte; this.init=function(){ txtNote=this.txtNote; txtLimit=this.txtLimit; limitCount=this.limitCount; isbyte=this.isbyte; txtNote.onkeydown=function(){wordsLimit()};txtNote.onkeyup=function(){wordsLimit()}; txtLimit.value=limitCount; } function wordsLimit(){ var noteCount=0; if(isbyte){noteCount=txtNote.value.replace(/[^/x00-/xff]/g,"xx").length}else{noteCount=txtNote.value.length} if(noteCount>limitCount){ if(isbyte){ txtNote.value=txtNote.value.substring(0,txtlength+Math.floor((limitCount-txtByte)/2)); txtByte=txtNote.value.replace(/[^/x00-/xff]/g,"xx").length; txtLimit.value=limitCount-txtByte; }else{ txtNote.value=txtNote.value.substring(0,limitCount); txtLimit.value=0; } }else{ txtLimit.value=limitCount-noteCount; } txtlength=txtNote.value.length;//记录每次输入后的长度 txtByte=txtNote.value.replace(/[^/x00-/xff]/g,"xx").length; } }
页面调用:
<html> <body> <input id="txtNote" /> 还可输入<input type="text" id="txtCount" />个字符 </body> <mce:script type="text/javascript"><!-- var lim=new limit(); lim.txtNote=document.getElementById("txtNote"); lim.txtLimit=document.getElementById("txtCount"); lim.limitCount=20; lim.isbyte=true; lim.init(); // --></mce:script> </html>
文本框限制字符长度
<INPUT onkeydown=if(event.keyCode==13)event.keyCode=9 onkeyup="value=value.replace(/[^0-9- ]/g,'');" maxLength=11 >
上面这样写只能限制输入的一定是数字 和最大长度为11个字符 如何限制一定要输入11位 不能少也不能多
------解决方案--------------------------------------------------------
你确定上面的写法对吗。。。测试怎么通不过呢。。
不对吗 测试那里不对 这个现在只是限制输入一定是数字和11个字符
------解决方案--------------------------------------------------------
<INPUT onkeydown=if(event.keyCode==13)event.keyCode=9 onkeyup="value=value.replace(/[^0-9- ]/g,'');" maxLength=11 >
上面这样写只能限制输入的一定是数字 和最大长度为11个字符 如何限制一定要输入11位 不能少也不能多
------解决方案--------------------------------------------------------
<INPUT onkeydown=if(event.keyCode==13)event.keyCode=9 onkeyup="value=value.replace(/[^0-9- ]/g,'');" maxLength=11 >
上面这样写只能限制输入的一定是数字 和最大长度为11个字符 如何限制……
------解决方案--------------------------------------------------------
if(document.form.mobile.value=="") { alert("您输入错误"); document.forma.mobile.focus(); return false; } else { if(!/^\d{11}$.test(document.form.mobile.value)) {alert("您输入数字的位数不对"); document.forma.mobile.focus(); return false; } }
不知道这样行不行。。。
------解决方案--------------------------------------------------------
HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>控制textarea的字符个数</title> <style> <!-- form{ padding:0px; margin:0px; font:14px Arial; } input.txt{ /* 文本框单独设置 */ border: 1px inset #00008B; background-color: #ADD8E6; } input.btn{ /* 按钮单独设置 */ color: #00008B; background-color: #ADD8E6; border: 1px outset #00008B; padding: 1px 2px 1px 2px; } --> </style> <script language="javascript"> function LessThan(oTextArea){ //返回文本框字符个数是否符号要求的boolean值 return oTextArea.value.length < oTextArea.getAttribute("maxlength"); } </script> </head> <body> <form method="post" name="myForm1" action="addInfo.aspx"> <p><label for="name">请输入您的姓名:</label> <input type="text" name="name" id="name" class="txt" value="姓名" maxlength="10"></p> <p><label for="comments">我要留言:</label><br> <textarea name="comments" id="comments" cols="40" rows="4" maxlength="50" onkeypress="return LessThan(this);"></textarea></p> <p><input type="submit" name="btnSubmit" id="btnSubmit" value="Submit" class="btn"> <input type="reset" name="btnReset" id="btnReset" value="Reset" class="btn"></p> </form> </body> </html>
------解决方案--------------------------------------------------------
HTML code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>电话号码检测 </title> <meta name="Generator" content="EditPlus"> <meta name="Author" content="Dsmart"> <meta name="Keywords" content=""> <meta name="Description" content=""> </head> <body> 电话号码:<input id ="phone" type="value" onblur="checkPhone()"/> <script type="text/javascript"> function checkPhone(){ var phone = document.getElementById("phone").value; if(phone == ""){ alert("请输入号码"); }else if(!(/^\d{11}$/g.test(phone))){//限制输入11整数 //}else if(!(/^13\d{9}$/g.test(phone)||(/^15[0-35-9]\d{8}$/g.test(phone))|| (/^18[05-9]\d{8}$/g.test(phone)))){ //用于检测用户输入的手机号码是否正确 验证13系列和150-159(154除外)、180、185、186、187、188、189几种号码,长度11位 alert("请输入11整数"); }else{ alert("ok"); } } </script> </body> </html>
------解决方案--------------------------------------------------------
<INPUT onkeydown=if(event.keyCode==13)event.keyCode=9 onkeyup="value=value.replace(/[^0-9- ]/g,'');" maxLength=11 >
上面这样写只能限制输入的一定是数字 和最大长度为11个字符 如何限制……
这样是可以有个提示,但并没起到限制作用,,当输入少于11位 还是可以提交的,这个是不是要用js来控制的呢
js限制文本框输入长度两种限制方式(长度、字节数)
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@