Javascript 这是检测“错误”的适当方法吗;输入“;输入一个“输入”;类型=文本“;所有(或至少大多数)浏览器的字段?

Javascript 这是检测“错误”的适当方法吗;输入“;输入一个“输入”;类型=文本“;所有(或至少大多数)浏览器的字段?,javascript,properties,enter,onkeypress,Javascript,Properties,Enter,Onkeypress,下面的代码段显示了我编写一个onKeyPress函数的方式,以便在按下Enter键时调用函数。这会处理所有(或至少大多数)浏览器吗 函数saveMarginKeyPress(thisArg,theEvent){ //如果属性存在,则调用saveButton onClick函数,然后退出 if((theEvent.keyCode)&&(theEvent.keyCode==13)){savemarginlicked();return;} if((theEvent.charCode)&&(theEv

下面的代码段显示了我编写一个
onKeyPress
函数的方式,以便在按下Enter键时调用函数。这会处理所有(或至少大多数)浏览器吗

函数saveMarginKeyPress(thisArg,theEvent){
//如果属性存在,则调用saveButton onClick函数,然后退出
if((theEvent.keyCode)&&(theEvent.keyCode==13)){savemarginlicked();return;}
if((theEvent.charCode)&&(theEvent.charCode==13)){savemarginlicked();return;}
如果((theEvent.which)和(&&(theEvent.which==13)){savemarginlicked();return;}
}
函数saveMarginClicked(){
警报(“您按下了回车键”);
}

使用
keydown
keydup
事件,并检查
keyCode
属性。IE 5-7没有触发enter键的
按键
事件

函数saveMarginKeyPress(thisArg,theEvent){
//如果属性存在,则调用saveButton onClick函数,然后退出
如果(theEvent.keyCode==13){
savemarginlicked();
}
}
函数saveMarginClicked(){
警报(“您按下了回车键”);
}

您的
事件在某些浏览器中可能无法得到很好的处理,因此请尝试类似的方法

onkeydown="var Key = (event) ? event.keyCode : e.which; if(Key==13)...

查看您的案例
theEvent.keyCode
!=<代码>事件键代码
;所以不,这在任何支持e.keyCode的浏览器中都不起作用…;)考虑:
var key=evt.keyCode | | evt.charCode | | evt.which;如果(键==13).
。似乎在旧版IE中失败了。我现在看到,我将keyCode作为“keyCode”,然后将“keyCode”放在同一行上,同样多。谢谢,很好的观察-我应该坚持小写还是有点偏执,检查所有六种可能性-大写和小写各3种?我想我测试过的浏览器在大小写不一致的问题上勉强应付过去了。Opps-我想没有理由担心“which”。更好的适应IE8和更低版本的顺序似乎是:
var-key=evt.charCode | evt.which | evt.keyCode