我有以下JavaScript代码:
/* Only numbers input in the CELL text box */
function ValidateKeyNumber()
{
var key=window.event.keyCode;
var allowed='0123456789';
return allowed.indexOf(String.fromCharCode(key)) !=-1 ;
}
这个JS在IE& Chrome但不在FF中。你能告诉我这有什么问题吗?我需要JS在这三种主流浏览器中工作。
供参考:
任何帮助将不胜感激。
更新
完整页面代码:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>JavaSCript Input Test</title>
<script>
/* Only numbers in mobile text-box */
function ValidateKeyNumber()
{
var key=window.event.keyCode;
var allowed='0123456789';
return allowed.indexOf(String.fromCharCode(key)) !=-1 ;
}
</script>
</head>
<body>
<form>
<label>Cell Number:</label><input type="text" name="cell" size="30" maxlength="10" onKeyPress="return ValidateKeyNumber()"/>
</form>
</body>
</html>
答案 0 :(得分:3)
问题是Firefox中没有定义window.event
。解决方案是使用传递给事件处理程序的参数,例如
<label>Cell Number:</label><input type="text" name="cell" size="30" maxlength="10" onKeyPress="return ValidateKeyNumber(event)"/>
function ValidateKeyNumber(event) {
var key=(event||window.event).keyCode;
var allowed='0123456789';
return allowed.indexOf(String.fromCharCode(key)) !=-1 ;
}