JS在Firefox下的keyCode兼容问题

我要限制text输入框只能输入数字和小数点,

  if((keyCode < 48 || keyCode > 57) && keyCode != 46)
  {
    evt.returnValue = false;  
  }

在IE下这代码是有效的,只能输入数据和小数点了,但是在FF下不管用,evt.returnValue = false; 这个没有用,
谁问谁 知道怎么改?

测试代码如下:

<html>
<head>
<meta. http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>test</title>
<script. type="text/javascript">
<!--
var $ = function (id) {
    return "string" == typeof id ? document.getElementById(id) : id;
};

function checkKeyCode(evt)  
{    
  evt = (evt) ? evt : ((window.event) ? window.event : "") 
  keyCode = evt.keyCode ? evt.keyCode : (evt.which ? evt.which :evt.charCode); 

  if((keyCode < 48 || keyCode > 57) && keyCode != 46)
  {
    evt.returnValue = false;  
  }  
} 
-->
</script>
<body>
<form. action="" method="post" name="form1" target="_self">
<input type="text" name="in" value="" nKeyPress="javascript.:checkKeyCode();">
</form>
</body>
</html>

  • skyworld - 1年前

    Firefox下使用preventDefault

    if(window.event)
    evt.returnValue = false;
    else
    evt.preventDefault();