function inputnumber(){
var e = e || event ;
if(e.keyCode>47 && e.keyCode<58) //设置输入数字
{
alert(e.keyCode)
return true;
}else{
alert("请出入数字");
return false;
}
ID号:
用这个onKeypree获得键盘的键码值, 在IE中可以,为什么在firefox中就不可以了, 求解。。。。
你的问题有两个:
1、[code="java"]
[/code]
这样以内联的方式绑定事件时,实际上浏览器会像类似于下面这样的方式处理:
[code="java"]
document.getElementById('id').onkeypress = function(){
return inputnumber()
}
[/code]
这样的话,在FF下你的event对象是无法获取的,因为FF里面事件对象是作为事件处理函数的第一个参数传递进去的。
2、[code="java"]
function inputnumber(){
var e = e || event ;
if(e.keyCode>47 && e.keyCode<58) //设置输入数字
{
alert(e.keyCode)
return true;
}else{
alert("请出入数字");
return false;
}
[/code]
在FF里面有keypress事件对象有“keyCode”和“charCode”属性,这里你需要使用“charCode”来获取。下面是我改的:
[code="java"]
document.getElementById('qq').onkeypress = inputnumber;
function inputnumber(ev){
var e = ev || event ;
alert(e);
var code = e.charCode || e.keyCode;
alert(code);
if(code>47 && code<58) //设置输入数字
{
alert(code)
return true;
}else{
alert("请出入数字");
return false;
}
}
[/code]
把上面的代码放到window.onload里面。
最后建议作者还是不要自己写这样的代码,浏览器兼容性是个很大的问题。采用JQuery这样的框架吧。
[code="js"]
ff的event跟IE里的不同,IE的是全局,随时可用。
FF的要用参数引导才能用,是运行时的临时对象。
document.onkeydown=inputnumber;
function inputnumber(e){
if(e.keyCode>47 && e.keyCode<58) //设置输入数字
{
alert(e.keyCode)
return true;
}else{
alert("请出入数字");
return false;
}
[/code]
http://bbs.linuxphp.org/thread-690-1-1.html参考一下
键码即使获得了 你用这个办法也不太好。 你用jquery比较好 ,可以跨平台,每次在时间触发的时候,都内置有event对象使用,所有浏览器都可以。