在做Ajax表单提交的时候,需要阻止浏览器的默认动作,如果是谷歌或火狐等现在浏览器,直接用event.preventDefault();
就好了,可悲的是,这方法到IE浏览器下面就不行了,甚至是IE10都不行。怎么解决呢?IE下面其实也有自己的阻止默认行为的方法window.event.returnValue = false;
,可这方法现代浏览器们不认,要兼容不同的浏览器,我们只好做一个判断了,不同的浏览器用相应支持的方法去阻止默认行为就好了。代码如下:
if(document.all){ //判断IE浏览器
window.event.returnValue = false;
}
else{
event.preventDefault();
};
把这段代码加到提交Ajax表单功能的上面就可以了。
或者,我们可以改写一下preventDefault
函数,把兼容各个浏览器的代码写到这个函数里面:
function preventDefault(event){ if(document.all){ window.event.returnValue = false; }else{ event.preventDefault(); } }
把上面的函数添加到js文件中,在其他地方引用的时候,就不用再判断浏览器了,直接使用preventDefault();
That's all.
2 thoughts on “对象不支持 “preventDefault” 属性或方法的解决办法”
谢谢,解决了我的问题。
哈哈,不用客气,能用就好。