shadowgg
小狐狸
小狐狸
  • UID3476
  • 注册日期2005-03-01
  • 最后登录2008-02-01
  • 发帖数16
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:2693回复:2

请问firefox如何实现在keydown时只输入数字

楼主#
更多 发布于:2005-10-11 16:05
以下代码在ff中不起作用,但在ie中可以.
firefox响应keydown时,似乎总是先改变text的value然后才执行inputOnlyNum
而ie先执行inputOnlyNum,进行判断过滤后才执行上层函数.
请问,firefox如何实现在keydown时只输入数字?

<input type="text" onkeydown="inputOnlyNum(event)">
function inputOnlyNum(myEvent)
{ 
	var keys=myEvent.keyCode;
	if (!((keys>=48&&keys<=57)||(keys>=96&&keys<=105)
			||( keys==8 )||(keys==46)||(keys==37)||(keys==39)||(keys==13)||(keys==229)
			))
	{
	    myEvent.returnValue=false;
			
	}
}
好东东大家就要共享
abc@home
千年狐狸
千年狐狸
  • UID6047
  • 注册日期2005-05-16
  • 最后登录2011-01-01
  • 发帖数1681
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
1楼#
发布于:2005-10-11 16:05
myEvent.preventDefault();



WINXP SP2 MAXTHON (UNICODE) PROXOMITRON
shadowgg
小狐狸
小狐狸
  • UID3476
  • 注册日期2005-03-01
  • 最后登录2008-02-01
  • 发帖数16
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2005-10-11 16:05
abc@home:myEvent.preventDefault();回到原帖

谢谢,按你的提示改成以下代码改但是发现preventDefault()居然对keydown不起作用
<input type="text" onkeydown="inputOnlyNum(event)">
function inputOnlyNum(myEvent)
{
    var keys=myEvent.keyCode;
    if (!((keys>=48&&keys<=57)||(keys>=96&&keys<=105) ||( keys==8)||(keys==46)||(keys==37)||(keys==39)||(keys==13)||(keys==229)
))
    {
         if(doument.all)
            myEvent.returnValue=false;//ie
         else
            myEvent.preventDefault();//ff

    }
}

不过preventDefault()对keypress还是起作用的,于是我改成下面方式实现了我的目的,谢谢楼主提示!不知道有没有更好的办法.
<input type="text" onkeydown="inputOnlyNum(event);" onkeypress="checkIfNum(event);">
<script language="javascript">
var keyIsNum = true;
function inputOnlyNum(myEvent)
{
    var keys=myEvent.keyCode;
    if (!((keys>=48&&keys<=57)||(keys>=96&&keys<=105)||( keys==8 )||(keys==46)||(keys==37)||(keys==39)||(keys==13)||(keys==229)
))
    {
       keyIsNum = false;
    }
    else
    {
       keyIsNum = true;
    }

}
function checkIfNum(myEvent)
{ 
    if(!keyIsNum)
    {  
      if(document.all)
           myEvent.returnValue=false;//ie
      else
           myEvent.preventDefault();//ff
    }  

}
</script>

好东东大家就要共享
游客

返回顶部