原因

IE浏览器启用了返回上一个页面的快捷键: backspace
chrome等主流浏览器屏蔽了backspace的默认事件,IE浏览器需要特殊处理

解决

  1. function banBackSpace(e) {
  2. var ev = e || window.event;
  3. //各种浏览器下获取事件对象
  4. var obj = ev.relatedTarget || ev.srcElement || ev.target || ev.currentTarget;
  5. //按下Backspace键
  6. if (ev.keyCode == 8) {
  7. var tagName = obj.nodeName //标签名称
  8. //如果标签不是input或者textarea则阻止Backspace
  9. if (tagName != 'INPUT' && tagName != 'TEXTAREA') {
  10. return stopIt(ev);
  11. }
  12. var tagType = obj.type.toUpperCase();//标签类型
  13. //input标签除了下面几种类型,全部阻止Backspace
  14. if (tagName == 'INPUT' && (tagType != 'TEXT' && tagType != 'TEXTAREA' && tagType != 'PASSWORD')) {
  15. return stopIt(ev);
  16. }
  17. //input或者textarea输入框如果不可编辑则阻止Backspace
  18. if ((tagName == 'INPUT' || tagName == 'TEXTAREA') && (obj.readOnly == true || obj.disabled == true)) {
  19. return stopIt(ev);
  20. }
  21. }
  22. }
  23. function stopIt(ev) {
  24. if (ev.preventDefault) {
  25. //preventDefault()方法阻止元素发生默认的行为
  26. ev.preventDefault();
  27. }
  28. if (ev.returnValue) {
  29. //IE浏览器下用window.event.returnValue = false;实现阻止元素发生默认的行为
  30. ev.returnValue = false;
  31. }
  32. // 阻止冒泡泡
  33. if (ev.stopPropagation) {
  34. ev.stopPropagation()
  35. } else {
  36. ev.cancelBubble = true
  37. }
  38. return false;
  39. }
  40. $(function() {
  41. //实现对字符码的截获,keypress中屏蔽了这些功能按键
  42. document.onkeypress = banBackSpace;
  43. //对功能按键的获取
  44. document.onkeydown = banBackSpace;
  45. })

在此说明几点:
1、 IE:有window.event对象
Firefox:没有window.event对象。可以通过给函数的参数传递event对象。如οnmοusemοve=doMouseMove(event)
统一的解决方法:var event = event || window.event;

2、 IE:even对象有srcElement属性,但是没有target属性
Firefox:even对象有target属性,但是没有srcElement属性
解决方法:var obj = event.relatedTarget || event.srcElement || event.target || event.currentTarget;

阻止默认事件 (两种方法)

  1. event.preventDefault();
  2. return false;

return false:相当于 event.preventDefault() + event.cancelBubble = false + event.stopPropagation() 的集合;

原文链接:https://blog.csdn.net/csdn_ds/article/details/73337929

参考链接: https://www.cnblogs.com/lujiulong/p/6019638.html

修复input输入框回车刷新页面问题

  1. form表单 onsubmit=”return false;”