Ctrl+Enter提交表单支持IE,Firefox,Opera

不同浏览器对JS标准的支持实现让我恼火,前些日子正为一个按下Ctrl键和Enter健提交表单而犯愁,还好解决了。记录于此,希望碰到相同问题的朋友能看到此篇文章!

:此代码经本人测试支持以下浏览器:IE>6.0,Firefox>2.0,Opera>9.0

下面是我测试时用到的代码:。

注:最好还是下载 >>>点击下载源码(ctrl-enter.rar)<<<

XML/HTML代码
  1. <html>  
  2. <head>  
  3. <title>phplamp站-www.phplamp.org</title>  
  4. <script type="text/javascript">  
  5. function isKeyTrigger(e,keyCode){   
  6.     var argv = isKeyTrigger.arguments;   
  7.     var argc = isKeyTrigger.arguments.length;   
  8.     var bCtrl = false;   
  9.     if(argc > 2){   
  10.         bCtrl = argv[2];   
  11.     }   
  12.     var bAlt = false;   
  13.     if(argc > 3){   
  14.         bAlt = argv[3];   
  15.     }   
  16.     var nav4 = window.Event ? true : false;   
  17.     if(typeof e == 'undefined') {   
  18.         e = event;   
  19.     }   
  20.     if(bCtrl &&   
  21.         !((typeof e.ctrlKey != 'undefined') ?    
  22.         e.ctrlKey :   
  23.         e.modifiers & Event.CONTROL_MASK > 0)) {   
  24.         return false;   
  25.     }   
  26.     if( bAlt &&   
  27.         !((typeof e.altKey != 'undefined') ?    
  28.             e.altKey : e.modifiers & Event.ALT_MASK > 0)){   
  29.         return false;   
  30.     }   
  31.     var whichCode = 0;   
  32.     if (nav4) whichCode = e.which;   
  33.     else if (e.type == "keypress" || e.type == "keydown") whichCode = e.keyCode;   
  34.     else whichCode = e.button;   
  35.        
  36.     return (whichCode == keyCode);   
  37. }   
  38.   
  39. function ctrlEnter(e){   
  40.     var ie = navigator.appName == "Microsoft Internet Explorer" ? true : false;   
  41.     if(ie){   
  42.         if(event.ctrlKey && event.keyCode == 13) {   
  43.             submit();   
  44.         }   
  45.         else {   
  46.             if(isKeyTrigger(e,13,true)) submit();   
  47.         }   
  48.     }   
  49. }   
  50.   
  51. function submit() {   
  52.     document.getElementById('myForm').submit();   
  53. }   
  54. </script>  
  55. </head>  
  56. <body>  
  57. <span>按下ctrl+enter后提交表单</span>  
  58. <form id="myForm" method="post" action="http://www.phplamp.org">  
  59.     <textarea onkeydown="ctrlEnter(event)"></textarea>  
  60. </form>  
  61. </body>  
  62. </html>  
版块:javascript源码 Tags: , , , , , 时间:2008-07-03
文章评论
2 回复 for "Ctrl+Enter提交表单支持IE,Firefox,Opera"
xiaoping - 2008-07-03
不错,简洁又不单调。
admin - 2008-07-04
谢谢夸奖~!现在这个模板还属于测试阶段,因为第一次做wp模板,不敢确定现在已经完成,只能说现在能浏览了。欢迎您时常来看看,我会经常更新的!
评论表单