js限制文本框输入长度两种限制方式(长度、字节数)
js限制文本框输入长度两种限制方式(长度、字节数)
发布时间:2016-12-30 来源:查字典编辑
摘要:功能/特点:1.实时显示可输入的字数(字节数)2.两种限制方式(长度、字节数)3.中文输入法下可正常使用,无BUG4.同一页面可以使用多个,...

功能/特点:

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"><></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>

<>

</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" 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">

<input type="reset" name="btnReset" id="btnReset" value="Reset"></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(!(/^13d{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来控制的呢

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类