Input文本框只允许输入数字

表单我想是很多做开发的Coder都接触过的,我就遇到这么一个问题: 要在表单中记录电话号码或手机号, 我只想让用户输入数字和"-"符号, html5中有直接的属性<input type=number>
想了解下除了这种方法还有没有比较简单编辑的方式做到<input type=text/>只允许输入数字?

评论 (0)链接2012-01-21 

三种常用方法:
第一种:

  
<input onKeypress=”return (/[\d.]/.test(String.fromCharCode(event.keyCode)))” style=”ime-mode:Disabled”>

第二种:

  
<input name="username" type="text" onkeyup="value=this.value.replace(/\D+/g,'')">

第三种:

  
<script language=javascript>
function onlyNum()
{
if(!(event.keyCode==46)&&!(event.keyCode==8)&&!(event.keyCode==37)&&!(event.keyCode==39))
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
event.returnValue=false;
}
</script><input onkeydown="onlyNum();" style="ime-mode:Disabled>
至尊宝
至尊宝
1159
编辑于 2012-03-02
该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-01-21
  
<input name="page" type="text" onkeyup='this.value=this.value.replace(/\D/gi,"")'>

更多请参考:

http://hi.baidu.com/huyanbin1989/blog/item/5a4d9b041947f20d738b65fc.html

该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-03-02
  
我经常用下面方法来限制只能输入数字:
<input type="text" name="mobile" value="" maxlength="13" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"/>
该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-01-21

楼上的很多答案用的都是正则判断,其实isNaN就可以很好的判断

  
<script language="javascript">
function check(obj){
if (isNaN(obj.value)){
alert(“非法字符!”);
return false;
}
}
</script>

<input type=”text” name=”test” onkeyup=”check(this);”>
该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-03-03

一般情况下,我个人做这类的东东,会使用AJAX调用,用ASP或PHP什么的判断是否为数字。

该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-09-05
德问是一个专业的编程问答社区,请 登录注册 后再提交答案