论坛首页 Web前端技术论坛

JS控制只能往输入框中输入数字

浏览 15074 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (8) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-01-20   最后修改:2010-01-20
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">

<SCRIPT LANGUAGE="JavaScript">
<!--
function keyPress() {
	var keyCode = event.keyCode;
	if ((keyCode >= 48 && keyCode <= 57))
	{
		event.returnValue = true;
	} else {
		event.returnValue = false;
	}
}
//-->
</SCRIPT>
</HEAD>

<BODY>
<INPUT TYPE="text" NAME="pName" onkeypress="keyPress()">
</BODY>
</HTML>

 

注意,这里是捕捉的onkeypress事件,而不是捕捉的onkeydown事件,如果是捕捉onkeydown事件,则这里就要修改if判断语句。 

   发表时间:2010-01-21  
比较喜欢不用if判断。
function keyPress() {   
    var keyCode = event.keyCode;
	event.returnValue = ((keyCode >= 48 && keyCode <= 57));   
}   
0 请登录后投票
   发表时间:2010-01-27  
xyztony1985 写道
比较喜欢不用if判断。
function keyPress() {   
    var keyCode = event.keyCode;
	event.returnValue = ((keyCode >= 48 && keyCode <= 57));   
}   


呵呵,效果一样!
0 请登录后投票
   发表时间:2010-01-27  
var myEvent = event || window.event;
var keyCode = myEvent.keyCode;

兼容性更好一点...
0 请登录后投票
   发表时间:2010-01-27   最后修改:2010-01-27
这个方法不太完善
如果使用中文输入,再回车或空格,文字或者字母还是可以输进去
<INPUT onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">--不能输入空格,按键弹起触发验证

这种方式比较直接

0 请登录后投票
   发表时间:2010-01-29  
我试了,怎么没有效果?
楼主解决了么?
0 请登录后投票
   发表时间:2010-01-30  
caiying0504 写道
这个方法不太完善
如果使用中文输入,再回车或空格,文字或者字母还是可以输进去
<INPUT onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">--不能输入空格,按键弹起触发验证

这种方式比较直接


按住一个字母,再按tab键,还是可以输入字符。
0 请登录后投票
   发表时间:2010-02-09  
nami 写道
caiying0504 写道
这个方法不太完善
如果使用中文输入,再回车或空格,文字或者字母还是可以输进去
<INPUT onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">--不能输入空格,按键弹起触发验证

这种方式比较直接


按住一个字母,再按tab键,还是可以输入字符。

呵呵,确实不够完善,谢谢提醒!
0 请登录后投票
   发表时间:2010-02-24   最后修改:2010-02-24
修改了下
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
<HTML>  
<HEAD>  
<TITLE> New Document </TITLE>  
<META NAME="Generator" CONTENT="EditPlus">  
<META NAME="Author" CONTENT="">  
<META NAME="Keywords" CONTENT="">  
<META NAME="Description" CONTENT="">  
  
<SCRIPT LANGUAGE="JavaScript">  
function keyDown() {   
    var keyCode = event.keyCode;   
    if ((keyCode >= 48 && keyCode <= 57||keyCode==8))   
    {   
        event.returnValue = true;   
    } else {   
        event.returnValue = false;   
    }   
}   
</SCRIPT>  
</HEAD>  
  
<BODY>  
<INPUT TYPE="text" NAME="pName" onkeydown="keyDown()" onpaste="return false;">  
</BODY>  
</HTML> 
 


但是中文大写锁定时不能输入数字
不支持小键盘
0 请登录后投票
   发表时间:2010-02-24  
caiying0504 写道
这个方法不太完善
如果使用中文输入,再回车或空格,文字或者字母还是可以输进去
<INPUT onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">--不能输入空格,按键弹起触发验证

这种方式比较直接


可以改成
<INPUT onkeyup="this.value=this.value.replace(/\D/g,'')" 
onblur="this.value=this.value.replace(/\D/g,'')"
onafterpaste="this.value=this.value.replace(/\D/g,'')">--不能输入空格,按键弹起触发验证

0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics