有如下代码:if(document.addEventListener){
document.addEventListener("keydown",maskBackspace, true); //firefox
}else{
document.attachEvent("onkeydown",maskBackspace); //ie
}function maskBackspace(event){
var event = event || window.event; //标准化事件对象
var obj = event.target || event.srcElement; if(event.keyCode == 8){
//如果是input跟textarea,回退键正常使用,否则回退键失效。
if(obj!=null && obj.tagName!=null && (obj.tagName.toLowerCase() == "input"
|| obj.tagName.toLowerCase() == "textarea")){
event.keyCode = 8 ;
event.returnValue = true ;
if(Ext.getCmp(obj.id)){
if(Ext.getCmp(obj.id).readOnly) {
event.keyCode = 0;
event.returnValue = false ;
}
}
}else{
event.keyCode = 0;
event.returnValue = false ;
}
}
}在ie下测试成功,但是在ff下,keyCode是只读属性,测试失败。请问下各位高手,如何才能在ff下实现屏蔽backspace的功能呢?
document.addEventListener("keydown",maskBackspace, true); //firefox
}else{
document.attachEvent("onkeydown",maskBackspace); //ie
}function maskBackspace(event){
var event = event || window.event; //标准化事件对象
var obj = event.target || event.srcElement; if(event.keyCode == 8){
//如果是input跟textarea,回退键正常使用,否则回退键失效。
if(obj!=null && obj.tagName!=null && (obj.tagName.toLowerCase() == "input"
|| obj.tagName.toLowerCase() == "textarea")){
event.keyCode = 8 ;
event.returnValue = true ;
if(Ext.getCmp(obj.id)){
if(Ext.getCmp(obj.id).readOnly) {
event.keyCode = 0;
event.returnValue = false ;
}
}
}else{
event.keyCode = 0;
event.returnValue = false ;
}
}
}在ie下测试成功,但是在ff下,keyCode是只读属性,测试失败。请问下各位高手,如何才能在ff下实现屏蔽backspace的功能呢?
event.returnValue = false ;
它的作用是什么呢?测试的时候可以将 if(Ext.getCmp(obj.id)){
if(Ext.getCmp(obj.id).readOnly) {
event.keyCode = 0;
event.returnValue = false ;
}
}
这段删掉,它是在ext下才能运行
event.returnValue = false ;
就是让响应的事件不执行。
默认是 event.returnValue = true ;执行
document.addEventListener("keydown",maskBackspace, true); //firefox
中的这个keydown?
那event.keyCode=0在这里的作用又是什么呢?
document.addEventListener("keydown",maskBackspace, true); //firefox
中的这个keydown? 是的event.keyCode=0 应该是不做任何事情吧。
if(document.addEventListener){
document.addEventListener("keydown",maskBackspace, true);
}else{
document.attachEvent("onkeydown",maskBackspace);
}function maskBackspace(event){
var event = event || window.event; //标准化事件对象
var obj = event.target || event.srcElement;
var keyCode = event.keyCode ? event.keyCode : event.which ?
event.which : event.charCode;
if(keyCode == 8){
if(obj!=null && obj.tagName!=null && (obj.tagName.toLowerCase() == "input"
|| obj.tagName.toLowerCase() == "textarea")){
event.returnValue = true ;
if(Ext.getCmp(obj.id)){
if(Ext.getCmp(obj.id).readOnly) {
if(window.event)
event.returnValue = false ; //or event.keyCode=0
else
event.preventDefault(); //for ff
}
}
}else{
if(window.event)
event.returnValue = false ; // or event.keyCode=0
else
event.preventDefault(); //for ff
}
}
}
if(document.addEventListener){
document.addEventListener("keydown",maskBackspace, true);
}else{
document.attachEvent("onkeydown",maskBackspace);
}function maskBackspace(event){
var event = event || window.event; //标准化事件对象
var obj = event.target || event.srcElement;
var keyCode = event.keyCode ? event.keyCode : event.which ?
event.which : event.charCode;
if(keyCode == 8){
if(obj!=null && obj.tagName!=null && (obj.tagName.toLowerCase() == "input"
|| obj.tagName.toLowerCase() == "textarea")){
event.returnValue = true ;
if(Ext.getCmp(obj.id)){
if(Ext.getCmp(obj.id).readOnly) {
if(window.event)
event.returnValue = false ; //or event.keyCode=0
else
event.preventDefault(); //for ff
}
}
}else{
if(window.event)
event.returnValue = false ; // or event.keyCode=0
else
event.preventDefault();
}
}
}